小工具知识网

当前位置: 首页 > 行业知识 > c语言-操作符详解(含优先级与结合性)

行业知识

c语言-操作符详解(含优先级与结合性)

2026-10-29 07:57:00 来源:互联网转载

文章目录

    • 了解什么是操作数、操作符
      • 操作数:
      • 操作符
      • 操作符详解:
        • 1.算术操作符: + 、- 、* 、/ 、%
        • 2.移位操作符: >
        • 3.位操作符: & | ^
        • 4. 赋值操作符: = 、+= 、 -= 、 *= 、 /= 、%= 、= 、&= 、|= 、^=
        • 5. 单⽬操作符: !、++、--、&、*、+、-、~ 、sizeof、(类型)
        • 6.关���操作符: > 、>= 、

          这我在之前的文章讲过,这里放个链接需要的可以去看看哦:http://t.csdnimg.cn/JL6ao

          3.位操作符: & | ^

          这我在之前的文章讲过,这里放个链接需要的可以去看看哦:http://t.csdnimg.cn/JL6ao

          4. 赋值操作符: = 、+= 、 -= 、 *= 、 /= 、%= 、= 、&= 、|= 、^=

          赋值操作符 =

          当我们要对变量初始化时或者给变量赋一个值时就可以使用(注:这不是我们数学上的等于号噢)

          如:

          int main() {int a = 10;//初始化,将10赋给aint b;b = 20;//赋值,将20赋给bprintf("a=%d b=%d", a,b); return 0;}

          运行结果:

          连续赋值:

          如:

          int main() {int a,b;a = b = 10;//将10赋给b,再将b赋给aprintf("a=%d b=%d", a, b);return 0;}

          运行结果:

          注意的是在初始化时不能进行连续赋值 如:int a = b = 10;//err

          运行会报错,如:

          复合赋值

          就是将原来运算的过程简化,如:

          int main() {int a = 10;int b = 20;a += b;//等于a+bprintf("%d", a);return 0;}

          运行结果:

          不仅能和 +,还能和 -、*、/等操作符一起复合使用

          5. 单⽬操作符: !、++、–、&、*、+、-、~ 、sizeof、(类型)

          1. 在c语言中规定0为假,非0为真
          2. ! 逻辑取非运算符:在判断条件时使用,如:(!真 ) 那么它的结果就为假

          如:

          int main() {int a = 1;if (!3) {printf("a为0");}elseprintf("a不为0");return 0;}

          运行结果:

          ++

          ++分为前置++和后置++

          区别:前置++是先+1再使用,后置++是先使用后++

          如:

          int main() {int a = 2;int b = 2;printf("a=%d\n", a++);//后置++,先使用,所以这里a的值不变 打印 a=2printf("b=%d", ++b);//前置++,先+1,后使用,所以这里打印b=3return 0;}

          运行结果:

          ** – **

          –分为前置–和后置–

          区别:前置–是先-1再使用,后置–是先使用后–

          如:

          int main() {int a = 2;int b = 2;printf("a=%d\n", a--);//后置--,先使用,所以这里打印 a=2printf("b=%d", --b);//前置--,先-1,后使用,所以这里打印b=1return 0;}

          运行结果:

          取地址操作符&

          用于取变量在内存中的地址

          如:

          int main() {int a = 10;printf("%p", &a);//取出a的地址,%p用于打印地址return 0;}

          运行结果:

          解引用操作符 ( * )

          ( * )用于指针 ,放在指针变量的前面,如:*p,*p通过指针变量p中存放的地址,找到指向的空间

          如:

          int main() {int a = 10;int* p = &a;*p = 5;//通过解引用符来找到p指向的空间,此时*p==a,改变*p即改变aprintf("a=%d", a);return 0;}

          运行结果:

          +、-

          这个并不是算术运算符的 +、 -,而是取正负的操作符,+(正)、-(负)。

          如:

          int main() {int a = 10;printf("+a=%d\n", +a);//a不变printf("-a=%d\n", -a);//a等于-10return 0;}

          运行结果:

          ~按位取非

          运算规则:将一个操作数全部取反(在二进制的基础上取非),不懂原码、反码、补码、进制的可以看看这个链接的内容:http://t.csdnimg.cn/JL6ao

          如:将int a=1取反

          sizeof()

          计算变量的所占内存空间大小,单位是字节,如果操作数是类型的话,计算的是使用类型创建的变量的所占空间的大小

          如:

          int main() {int a = 10;int arr[10];printf("%d\n", sizeof(a));//变量printf("%d\n", sizeof(int));//类型printf("%d\n", sizeof(arr));//在计算数组大小时在()输入数组名即可return 0;}

          int类型的字节大小为4字节,arr[10],为10个int型的数据所以为40

          (类型)

          ()强制类型转换,如(int)9.8,将浮点数转化为整数

          如:

          int main() {double a = 9.8;printf("%d\n",(int)a);//return 0;}

          运行结果:

          转化之后舍掉小数

          6.关系操作符: > 、>= 、= 、

上一篇:怎么讲网站适配手机?

下一篇:ftp服务器作业怎么交?