第三章
逻辑运算符
逻辑表达的结果就是在(!=0)即为真,反之则为假
&&(且) | 运算符运行为真时,才能往下运算 |
||(或) | 运算符运行为假时,才能往下运算 |
!(非) | 非黑即白 |
int a=1,b=1,c=1,d=1,n=1;
n=(a=2)&&(b=2);//表示将2赋值给a,将2赋值给b,//含义为真真,对n进行判断若为真则n=0反之n=0
n=(a=2)&&(b=0)&&(c=0);//表示将2赋值给a,将2赋值给b,//含义为真假,停止判断,不在将0赋值给c
//对n进行判断若为真则n=0反之n=0
n=(a=2)||(b=2)//或,有假才进行即:真不在进行下去,不将2赋值给b
自增自减运算符
你知道i++和++i的区别吗?
对于这个我想大家都会混淆,不明白其中的含义
栗子1:
i++//表示先输出i,在进行加1
++i//表示先加1,在进行输出
解释:第1个printf输出后的i=5;第2个printf表示先打印i=5,再进行加1;第3个printf表示把在2的基础之上打印再加上1之后的i输出(i=6);第4个printf表示先加1再打印出来即(i=6+1=7)
例题:求解输出的值?
int i, j, ;
i = 0;
j = 5;
printf("%d%d",++i,j++);
解释:先加1再打印i;先打印j再加1。所以1,5
运算符的表达
栗子1
求m,n?
int m,n,a,b,c,d;
m=n=a=b=c=d=1;
(m=a>b)&&(n=c>d);
解释:因为a!=b,so前半部分为假(m=0),后半部分不在执行,故(n=1)
栗子2
求a输出的值?
a = (1,2,3,4,5);
解释:运算顺序从左到右
判断符的理解
如何读懂判断符?
栗子1
求result的值?:表示否则
int a=4,b=20;
a>=b?result=0:result=1;
解释:a是否大于等于b是结果为0否则结果为1
代参的宏——易错提醒
x=2+3
栗子1
#define B(x) (x)+(x)
20/A(x)
//表示的含义为20/(2+3)+(2+3)=9
栗子2
#define A(x) x+x
20/A(x)
//表示的含义20/2+3+2+3=18
栗子3
#define C(x) ((x)+(x))
20/C(x)
//表示的含义为20/((2+3)+(2+3))=2
本文介绍了编程语言中的逻辑运算符,包括&&和||的运算规则,以及它们在条件判断中的应用。同时,讨论了自增自减运算符i++和++i的区别,并通过实例解析了它们的使用。此外,还提到了运算符的优先级和宏定义可能导致的误解,举例说明了宏参数可能产生的不同计算结果。
2100

被折叠的 条评论
为什么被折叠?



