C例题求解
谢谢 !{:5_107:} 1,++在后,说明结果在下一条语句生效2,++在前,本次马上生效
3,(++j)+(++j)+(++j)运算优先级 其实是 ((++j)+(++j))+(++j)7+7+8 你这个代码在不同的编译环境可能会出现不同的结果,但是无非就是优先级的问题
至于i++ 和 ++i ,一个先运算后自加,一个先自加后运算,但是由于不同编译器有些
结果可能是15 ,24 ,8 , 8 所以你理解了就可以了,不需要过分纠结
我特意给你加了一行,代码,你可以对比一下,理解
#include <stdio.h>
int main()
{
int i=5,j=5,k=5,p,q,r;
p=(i++)+(i++)+(i++); // p = 5 + 6 + 7 执行后 i = 8
r = (++k)+(++k);printf("%d\n",r); //特意给你加了一行,你可以对比一下这个
q=(++j)+(++j)+(++j); // q = 7 + 7 +8 执行后 j = 8
printf("%d,%d,%d,%d",p,q,i,j);
return 0;
}
ba21 发表于 2018-3-25 21:00
1,++在后,说明结果在下一条语句生效
2,++在前,本次马上生效
3,(++j)+(++j)+(++j)运算优先级 其实 ...
((++j)+(++j))+(++j)这是为啥啊- -为啥前两个要用括号括起来 Zmynx_2017 发表于 2018-3-25 21:16
你这个代码在不同的编译环境可能会出现不同的结果,但是无非就是优先级的问题
至于i++ 和 ++i ,一个先 ...
((++j)+(++j))+(++j)那为啥变成这个了啊为啥括起来前两个啊 - - zhengyihao1 发表于 2018-3-26 10:11
((++j)+(++j))+(++j)那为啥变成这个了啊为啥括起来前两个啊 - -
你是用的编译器就是这么干的,没有为什么,你只需要知道它是这么干,大概了解就可以了,
并且,这样的问题感觉就是考试可能会考,而且得限制编译环境,实际谁疯了吗?要这样写代码?
页:
[1]