可能的重复:
谁能解释这些未定义的行为(i = i++ + ++i,i = i++,等等......)
#include<stdio.h>
#include<conio.h>
#define SQ(x) x*x
void main()
{
int a1 , a2;
int b1 , b2;
a1 = 2;
a2 = 2;
b1 = 0;
b2 = 0;
b1 = SQ(a1++);
b2 = SQ(++a2);
printf("Frist = %d",b1);
printf("Second = %d",b2);
}
我知道代码的输出是什么。
作为其他程序中的 #define 工作
这样它在上面的代码中不起作用
为什么。?
对同一变量使用多个 ++ 运算符的表达式的结果是正式的未定义的行为 in C.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)