'*','++i'&&'i++'优先级问题

本文详细讨论了C语言中'++i'与'i++'的优先级问题,澄清了常见的误解。实际上'i++'的优先级高于'++i',且'*'与'++i'的优先级相同,按照从左到右运算。通过具体的代码示例,解释了'i++'在赋值表达式中如何先保存初始值再进行自增,从而可能导致误解其优先级低于'='。
摘要由CSDN通过智能技术生成

关于’*’,’++i’&&‘i++‘优先级的问题
一般很多人存在一个误解,认为’++i’优先级高于’i++’,但实质上’++i’和’i++‘不是同一个优先级,相反’i++‘相比于’++i’优先级更高,而’*‘与’++i’是同一个优先级的运算符,按照从左到右依次运算,所以得出的优先级顺序’i++’ >’ ++i’ == ‘*’

很多人在书上看到的或者学到的a = ++i;是先计算++i的值,然后赋值给a,而a = i++;返回的是++之前的值,便认为’i++‘优先级小于’++i’,但是在C语言定义’i++‘这个函数的时候,在a = i++;中,函数内部先存储一个i开始的值,然后执行++,最后把i最开始的值返回给表达式,所以给人造成一种优先级小于’='的错觉,
若果不确信的话,可以试一下以下操作

int a[3]={
    0 , 2 , 9 };
int* p = a;
printf("%d,%d\n",
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值