C语言_操作符

       操作符可以分很多的类,例如:算术操作符 移位操作符 位操作符 赋值操作符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号表达式 下标引用,函数调用和结构成员.这篇博客则是把每类操作符介绍一下.

算术操作符: +  -  *  /  %

常见的运算符号:加减乘除,常用于整数和浮点数

整数/整数还是等于整数

%,取余,操作数必须是整数

移位操作符:<<  >>

左边操作符<<  :  左边抛弃,右边补0

右移操作符>>:    右边抛弃,左边补0

  • 逻辑移位 左边用0填充,右边丢弃
  • 算术移位 左边用原该值的符号位填充,右边丢弃

位操作符:&  |  ^

#include <stdio.h>
int main()
{
int num1 = 1;
int num2 = 2;
num1 & num2;//按位与
num1 | num2;//按位或
num1 ^ num2;//按位异或
return 0;
}

赋值操作符:  =

可以给一个变量重新赋值

复合赋值符: +=   *=   /=   %=   >>=   <<=   &=   |=   ^=

经过运算,把值返回自身

i=i+1;
i+=1;
//两者等价

单目操作符: !   -  +  &   sizeof   ~   -- -- ++   *  

! 逻辑反操作

- 负值

+ 正值

& 取地址

sizeof 操作数的类型长度(以字节为单位)

~ 对一个数的二进制按位取反

-- 前置、后置--

++ 前置、后置++

* 间接访问操作符(解引用操作符)

关系操作符:>  >=  <  <=  !=  ==

用于比较两个数的大小

在代码中'=='号的意思才是相等,切不可与'='混用

逻辑操作符:||  &&

1&2----->0
1&&2---->1
1|2----->3
1||2---->1

条件操作符:  exp1?exp2:exp3

是一个三目操作符

a>b?a:b;
//如果a>b为真,则输出a;为假,输出b

逗号表达式:  ,

逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果

下标引用、函数调用和结构成员

1,下标应用: 

char arr[10]={0};//定义一个十个元素的数组arr,初始化都为0
for(int i=0;i<10;++i)
{
    printf("%d",arr[i]):
}                //打印数组的每一个元素

2,函数调用:

#include <stdio.h>
void test1()
{
    printf("hehe\n");
}
void test2(const char *str)
{
    printf("%s\n", str);
}
int main()
{
    test1(); //实用()作为函数调用操作符。
    test2("hello world");//实用()作为函数调用操作符。
    return 0;
}

3,结构成员:

#include <stdio.h>
struct Stu
{
    char name[10];
    int age;
    char sex[5];
    double score;
};
void set_age1(struct Stu stu)
{
    stu.age = 18;
}
void set_age2(struct Stu* pStu)
{
    pStu->age = 18;//结构成员访问
}
int main()
{
    struct Stu stu;
    struct Stu* pStu = &stu;//结构成员访问
    stu.age = 20;//结构成员访问
    set_age1(stu);
    pStu->age = 20;//结构成员访问
    set_age2(pStu);
    return 0;
}

操作符的属性:

复杂表达式的求值有三个影响的因素。

1. 操作符的优先级

2. 操作符的结合性

3. 是否控制求值顺序。 两个相邻的操作符先执行哪个?取决于他们的优先级。如果两者的优先级相同,取决于他们的结合性。

     这些只是对函数操作符的大概概述,操作符是写代码的基础,还是需要大量的练习来实习.

猜你喜欢

转载自blog.csdn.net/zjx1113/article/details/83340102