...TC2.0和CFREE5.0,运行出来的结果为什么会不同呢?请教。
发布网友
发布时间:2024-10-24 18:14
我来回答
共2个回答
热心网友
时间:2024-11-07 10:22
不一样很正常,因为C语言标准没有对这种++++的运行结果作规定。
学C语言最好的是编译器为gcc的。TC过时了。cfree严格说来只是ide,可以兼容多种编译器,所以可以用。
热心网友
时间:2024-11-07 10:26
我们可以用手工计算,看看答案是多少:
j=5; q3=(++j)+(++j)+(++j);
//前缀加,规定:先增1再使用,所以 上式变:
j=j+1 ;j=j+1; j=j+1;
j 变 8了。
q3=j+j+j;
q3 得 24。
----
j=5; q4=(++j)+(++j)+(++j)+(++j);
//前缀加,所以 上式变:
j=j+1 ;j=j+1; j=j+1; j=j+1;
j 变 9了。
q4=j+j+j+j;
q4 得 36。
显然, ‘C免费’编译器,编译优化有问题。试用 编译时 不优化 选项。