一 运算符和表达式
概念
!!!几目运算符:就是需要几个操作数 !!! 表达式也有值 !!!
优先级和结合性
-
优先级: -->算的方式
a+b+d*(e+f);
-
结合性: -->读的方式 = :赋值运算符 int a=888; 自右往左 888赋值给a
二 各种运算符
1 赋值运算符
作用:右边的值(表达式也有值)给左边的变量
表达式:
2 算术运算符
1 / 除数不能为0 1.0*1/4 2 % 正负号问题 余数的正负号只和被取余数有关 printf("余数:%d\n", 1 % -2); //1 printf("余数:%d\n", -1 % 2); //-1 printf("余数:%d\n", -1 % -2); //-1 printf("余数:%d\n", -2 % -1); //0
注:自加自减
i=2 | 表达式 | i |
---|---|---|
i++; | 2 | 3 |
++i; | 3 | 3 |
3 关系运算符
注: 1 值只为0或者1(非0及1) 2 条件描述不存在连续操作 1 <= 6 <= 3这个是恒等式 先执行1<=x -->[0,1]; [0,1]永远都是小于3
4 逻辑运算符
5 位运算符
6 条件运算符
#include<stdio.h> int main() { int a; int j=1, i=0; a = j++ ?j++: i++; printf("%d\n",a); return 0; } //打印出2
7 逗号运算符
if(10,5,0)不执行//逗号表达式有效值为最后一个
8 size of运算符
sizeof运算符--->统计类型占用字节数 1.在编译期完成 printf("int:%zd\n", sizeof(int)); printf("long int:%zd\n", sizeof(long int)); printf("char:%zd\n", sizeof(char)); printf("int:%zd\n", sizeof("helloworld")); int result = sizeof(num = 8); //在编译期完成,赋值语句不会运行 printf("result=%d\tnum=%d\n", result, num);