#define cube(x) (x*x*x)voID main(){ int x=2,y; y=cube(++x); printf("%d %d",++x,y); }
我期待结果为
6,60
但它给出了不同的结果.我想我对预处理器有误解.我认为代码将类似于
voID main(){ int x=2,y; y=++x*++x*++x; printf("%d %d",y); }
如果我错了,请纠正我.
我正在解释结果
3 * 4 * 5 = 60
但它来了125
但是,子表达式的执行顺序是未定义的,例如,它们可以是交错的,这会产生未定义的行为.
总结以上是内存溢出为你收集整理的C程序中preincrement运算符的行为全部内容,希望文章能够帮你解决C程序中preincrement运算符的行为所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)