
函数最先执行的语句是:int x = x3, int y = x4//把x3跟x4的值赋给x跟y
所以函数里面改变的是x跟y的值,而x跟y在函数结束后就被清除了,所以受改变的只有全局变量x1,第一次执行sub的时候,
x = x3
x1 = x//x1==10
同理,第二次的时候x1的值就等于x2了,所以x1最终值为40,其他值不变,输出结果是:
10, 20, 40, 40
答案是 B ,这和宏定义有关;#define N 2
#define M N+1
#define NUM (M+1)*M/2
宏定义只做符号的替换
#define M N+1
#define NUM (M+1)*M/2
这句后 NUM=(N+1+1)*N+1/2
注意 :N+1是没有括号的,不是 NUM=(N+1+1)*(N+1)/2
N=2,代入,NUM=(2+1+1)*2+1/2 =4*2+0=8
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)