C语言的学习——运算符与表达式

本文介绍了编程语言中的逻辑运算符,包括&&和||的运算规则,以及它们在条件判断中的应用。同时,讨论了自增自减运算符i++和++i的区别,并通过实例解析了它们的使用。此外,还提到了运算符的优先级和宏定义可能导致的误解,举例说明了宏参数可能产生的不同计算结果。
摘要由CSDN通过智能技术生成

第三章

逻辑运算符

逻辑表达的结果就是在(!=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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是先森丫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值