问题描述
- 关于单独的a++问题,而不是i=a++的问题困惑
-
# include <stdio.h> int main(void) { int y = 2; int n = 3; int nextnum = (y + n++)*6; printf("%d ", nextnum); return 0; }
请问下这里的n++为什么不是n = n+1变成4,然后最终答案是(2+4)*6 = 36呢?
正确答案是n++之后n仍然=3,(2+3)*6=30!有高手指点下迷津吗?谢谢!
解决方案
int nextnum = (y + n++)*6;
这句话拆开来就是
int nextnum = (y + n)*6;
n=n+1;
解决方案二:
单独的n++和n有区别的;执行过n++他后面使用n实际上已经n+1了,i = n++ 的i=n+1是因为运算符的优先级原因,因为++的优先级大于=,所以在赋值i时,先执行了++
解决方案三:
如果把n++改为++n就是你想要的结果了
解决方案四:
n++ 是先用 n 的值运算,再 n 加1
++n 是你想要的:n 先加 1,再进行运行
解决方案五:
n++ 是先使用n在++的先用后加
解决方案六:
the target processor (armv4i) is not installed,问题解决方法
解决方案七:
补问:是不是可以这么理解?如果是这样的话,单独的n++和n就没区别了,他们都代表n,而赋值后的i = n++就代表n+1了?
解决方案八:
俩加号在后边是指表达式结束后再自增1,俩加号在前边是指先自增1再计算表达式。
解决方案九:
关于c语言的++x 和x++ 问题 是关于一种特殊规定 也就是机器自己的逻辑 这里的 结果和你想要的结果不一样 那你不妨在下面在多打印一下n的值 看看
其是否发生改变 答案是肯定的 你刚刚改变的n值只有到本次运算后才发生改变 所以遇到这个问题 要多注意 加油 加油
解决方案十:
n++ 跟++n的区别,
n++是让n参加操作后在+1,而++n是先自身+1后在参加操作。。。
时间: 2024-11-09 00:14:36