#include "stdio.h"
main()
{
int i=16,j;
j=(i++)+(++i);
printf("%d",j);
i=15;
printf("%d,%d",++i,i);
}
不清楚你哪里看到这样的题目,这段小程序问题多多肯定不是初学者该研究的
首先,它的写法完全不符合ISO标准C语言的写法
1、#include "st360问答dio.h" 应该是#include
2、在ISO规定中,main()必须是int返回值(上面的程序在某些编译器下会有警告的)
而关键的是车特社晚星,这段程序的结果与编译器有关(也就是没有一个固定的结果的)
以下是我测试的几个编译器结果
gcc version 11温杆左.3.0:
3416,16
vc++ 6.0
3416,15
Embarcadero C++ 7.0
3416,15
vc++(2022)
3416,16
这类程序在二十多年前就有过论,在一个表达式或函数中有多个++会产生非预料的结果,也是编写程序应该避免的,而出这个题目的,要么自己根向亮亮脚合激思谓肥检继本不懂C语言,要么就是研究编译器的,而裘宗燕老师在2010年左右写的有关《C/C++ 语言中的表达式求值》中最后是这么说的:后后记:4年多过去了,许多新的和老的教科书仍然在不厌其烦地讨论在C语言里原本并无意义的问题(如本文所指出的)。希曲京增台怕探烈径开率望学习和使用C语言的人不要陷入其中。
int 能片体i=16,j;
j=(i++)+(++i);
printf("%d",j);
输出:33
i=15;
pr图味胜度步得济intf("%d,%d",++i,i);
输出:16,15
此题过程:i++:先皇根我功至均风蒸钢需赋值再自增,++i::先自增再赋值
首先第一句是导入,""可能会报错,推荐改成<>。别的就很简单,没错啦。