自增自减运算符弄不懂啦求大神。。。。
#include<stdio.h>int main(void)
{
int a=9,b=19;
int i,p;
i=a++;
p=b--;
printf("i 的值为:%d\n",i);
printf("p 的值为:%d\n",p);
return 0;
}
i的值和p的值还是原值不变那为什么这个结果是12呢 不是11呢?
#include<stdio.h>
int main(void)
{
int a;
int i=5;
a=(i++,++i,i+5);
printf("a 的值为:%d\n",a);
return 0;
}
第一个i的值和p的值应该是不变的啊! p++在同一行代码使用还是P但在
在紧接的下一次使用开始P=P+1; a=(i++,++i,i+5);
第一个 i++ 之后 i 的值是6
第二个 ++i 之后 i 的值是7
7+5 == 12
就这么简单 a=9,b=19;
i=a++i还等于9
p=b--p还等于19
那为什么int i=5;
a=(i++,++i,i+5);却等于12不是11呢? 第一个的i和p的值是不变的因为你i=a++;是先把a的值赋给i后然后a再自增1,所以i的值为9,同理b的值为19;
第二个首先执行i++后;i值为6,然后再++i(使用前加1)此时为7,然后加5为12;
建议楼主单步调试,可以清晰的看到自增后的值;{:5_108:} 奥这样啊 谢谢啊 嘿嘿 我初学呢以后多多指教啊 加加在前,先加后用;加加在后,先用后加 强烈支持楼主ing…… 先复制再自加/减
a=(i++,++i, i+5)
从左至右i=6, i=7, 所以i+5 = 12 我只是路过打酱油的。 楼上的已经回答过了
那里会进行两次自加的 {:1_1:}
页:
[1]