C语言高手速来~~~
1a=1a+=a-=a+aa=?2a=1b=(a++)+(++a)b+?简述理由~~~第一个式子为什么是从右往左第二个(a++)+(++a)为什么是从左往右晕b到底等于几...
1 a=1 a+=a-=a+a
a=?
2 a=1 b=(a++)+(++a)
b+?
简述理由~~~
第一个式子 为什么 是从右往左
第二个 (a++)+(++a)为什么是从左往右
晕 b到底等于几 ?给个准信。。 再分析一下! 展开
a=?
2 a=1 b=(a++)+(++a)
b+?
简述理由~~~
第一个式子 为什么 是从右往左
第二个 (a++)+(++a)为什么是从左往右
晕 b到底等于几 ?给个准信。。 再分析一下! 展开
展开全部
这个拆开就知道了
1. a = 1 a+=a-=a+a;
先算a+a 为 2,并记下这个值
a -= 2
这时 a值为 -1
a += -1
最后 a 为 -2
2 a =1 b=(a++) +(++a)
这个 b的结果为3 或 4, a 为3
这个是属于C标准中的未定义行为,如果你是一个管理人员,你的员工写出这种代码,你可以fire掉他了。
给你补充一下第二个问题,这个之所以说是,3或4,是因为这行代码是有问题的,可以认为这是一个有歧义的语句,因为不同的编译器会做不同的处理。
有的可能会把 a++ 中a的值先拿出来,也就是1, 再把++a的值拿出来,也就是2,并把置为2,再把1+2的值传为b,这样就是3了,也有的是,把所有的前自增放在前面自增完了再用,这时可以拆成
a=1;
a+=1;
b= a + a;
a+=1;
这样b就是4了。
语言标准里是明确指出,这是一种未定义行为的,如果你的编译器对标准严格支持,那么这类代码是不应该通过编译的,换言之,这代码是错的。
1. a = 1 a+=a-=a+a;
先算a+a 为 2,并记下这个值
a -= 2
这时 a值为 -1
a += -1
最后 a 为 -2
2 a =1 b=(a++) +(++a)
这个 b的结果为3 或 4, a 为3
这个是属于C标准中的未定义行为,如果你是一个管理人员,你的员工写出这种代码,你可以fire掉他了。
给你补充一下第二个问题,这个之所以说是,3或4,是因为这行代码是有问题的,可以认为这是一个有歧义的语句,因为不同的编译器会做不同的处理。
有的可能会把 a++ 中a的值先拿出来,也就是1, 再把++a的值拿出来,也就是2,并把置为2,再把1+2的值传为b,这样就是3了,也有的是,把所有的前自增放在前面自增完了再用,这时可以拆成
a=1;
a+=1;
b= a + a;
a+=1;
这样b就是4了。
语言标准里是明确指出,这是一种未定义行为的,如果你的编译器对标准严格支持,那么这类代码是不应该通过编译的,换言之,这代码是错的。
展开全部
这是编程里面的,要从右向左看,意思是将等号右边的计算结果赋值给等号左边的变量(本题中等号左边的变量即为a),可以拆分成两个式子:
1. a-=a+a;
2. a+=(a-=a+a);
+=、-=这两个符号好像是为了节约内存什么的而设计的,上面两个式子的真实意思为:
1. a=a-(a+a);
2. a=a+(第一个式子的计算结果)
由于是从右向左的,所以需要先计算整个式子最后边的等号,即第1个式子:
a=a-(a+a)
计算结果为a=a,意思为将等号右边的a的值赋值给等号左边的a,因此第1个式子的计算结果为a的值不变,依然是a的原始值;
再计算第2个式子:
a=a+(第一个式子的计算结果)
代入第1个式子的计算结果,得到:
a=a+a
即a=2
第二个是 先用后加 先加后用
所以是3
1. a-=a+a;
2. a+=(a-=a+a);
+=、-=这两个符号好像是为了节约内存什么的而设计的,上面两个式子的真实意思为:
1. a=a-(a+a);
2. a=a+(第一个式子的计算结果)
由于是从右向左的,所以需要先计算整个式子最后边的等号,即第1个式子:
a=a-(a+a)
计算结果为a=a,意思为将等号右边的a的值赋值给等号左边的a,因此第1个式子的计算结果为a的值不变,依然是a的原始值;
再计算第2个式子:
a=a+(第一个式子的计算结果)
代入第1个式子的计算结果,得到:
a=a+a
即a=2
第二个是 先用后加 先加后用
所以是3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1
a-=a+a;//a=-1;
a+=a;//a=-2;
2
b=4;//用括号括起来表示两个同时操作
a-=a+a;//a=-1;
a+=a;//a=-2;
2
b=4;//用括号括起来表示两个同时操作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1. -2
2. 4
2. 4
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询