#C语言学习感悟#关于++a和a++

本文通过一个具体的C语言程序实例,详细解释了前缀自增运算符(++a)与后缀自增运算符(a++)的区别及其在复合表达式中的应用。文章重点分析了在条件表达式中如何确定变量的最终值。

话不多说,直接看一个程序:

int a=5,b=6;
printf("%d\n",((++a==b--)?++a:b--));(说明:程序段是为了字迹显示清楚,不是所示对应的代码,下同)

输出的结果是什么呢?请看下图:


这个结果是计算机给的,肯定是按照程序执行的。要能弄懂上面的程序里表达式的结果,必须要理解++a和a++这两种形式的区别。

情况一:++a 意味着先计算a=a+1,然后再取a的值。
情况二:a++ 意味着先取a的值,再运算a=a+1。

上面的程序中,++a的a值是6(要先算a=a+1),而b--的b值是6(因为先取值,再计算b=b-1),判断条件成立,所以取后面++a的值,因为要先算a=a+1,再取值,所以此时最后取到的a值为7。

不过要注意的是,以上两种情况也是有成立条件的,如果是遇到了语句结束符号“;”然后再取值的话,则二者是一样的。因为需要把对应行的代码执行完再取值,无论是否先算a=a+1,最后都是算完才进行下一步。

例如:

int a=1;
a++;
printf("%d\n",a);


int a=1;
++a;
printf("%d\n",a);

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值