a++和++a有什么区别啊?在for语句中充当计数器的时候有什么不同?

来源:百度知道 编辑:UC知道 时间:2024/06/17 14:35:46
望能尽量说清楚一点,谢谢!

a++,先用后加,比如,a的初值为1,表达式a++的值为1,之后a才加1,a值变为2.
++a,先加后用,a初值为1,表达式++a值为2,此时a值已经加1变为2了.

说出来很简单,但要真正学会必须做些习题才行啊,
大约几十道就行,然后你就会用了.

a++代表先赋值后自增
++a代表先自增后赋值

在for语句中只有一点不同,就是++a比a++效率要高一点点

功能是一样的

只要记住++的运算为从左向右就行了,这与优先级有关的!

C语言优先级
醋-初等,4个: ( ) [ ] -> 指向结构体成员 . 结构体成员
坛-单目,9个: ! ~ ++ -- -负号 (类型) *指针 &取地址 sizeof长度
酸-算术,5个: * / % + -减
味-位移,2个: << >>
灌-关系,6个: < <= > >= == 等于 != 不等于
味-位逻,3个: & 按位与 ^ 按位异或 | 按位或
落-逻辑,2个: && 逻辑与 || 逻辑或
跳-条件,1个,三目: ? :
福-赋值,11个: = += -= *= /= %= >>= <<= &= ^= |=
豆-逗号,1个: ,

a++,先用后加,比如,a的初值为1,表达式a++的值为1,之后a才加1,a值变为2.
++a,先加后用,a初值为1,表达式++a值为2,此时a值已经加1变为2了

如果a没有使用的话,是一样的。比如str[a];a++;a++与++a一样
如果a使用了,比如printf("%d",a++);
a++,先用后加;++a,先加后用.