首页
社区
课程
招聘
[求助] C语言相关练习.
发表于: 2018-5-29 11:08 2873

[求助] C语言相关练习.

2018-5-29 11:08
2873
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
	int x, y;

	x = 0;
	y = (4 + x++) + (6 + x++);
	printf("x = %d, y = %d\n", x, y);

	
	system("pause");
	return 0;
}



提问:  x 和 y 等于多少?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 3
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
终贴:  此结果  x  =  2,  y  =  10;
2018-5-29 11:43
0
雪    币: 3
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
在C标准中并未定义这一行为,  在同一个完整表达式中,  尽量不使用同一变量++或--后缀两次或以上,  希望各位注意.
2018-5-29 11:44
0
雪    币: 3
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不然,  会导致两种或多种不同的结果.
2018-5-29 11:44
0
雪    币: 782
活跃值: (3430)
能力值: ( LV7,RANK:140 )
在线值:
发帖
回帖
粉丝
5
代码被优化了。vs2013下,debug优化后是  y=0+0+10,x=x+1.x=x+1,release是直接printf("x  =  %d,  y  =  %d\n",  2,  10);
你的结论是正确的,不要在一个表达式里这样用。
2018-5-29 13:20
0
雪    币: 3725
活跃值: (624)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
6
这种问题也是第一次发现, 似乎并没有像想象中的那么运行, 类似自增减的运算我以前在百度上也有回答过.
不过被好多人踩了, 其实这个题目VC6和VS2008编出来的, 运行结果是不一样的. 看下图吧:

2018-5-29 20:25
0
雪    币: 5676
活跃值: (1303)
能力值: ( LV17,RANK:1185 )
在线值:
发帖
回帖
粉丝
7
都8012年了,咋还有人在被谭浩强坑。。。
2018-5-29 23:45
0
雪    币: 290
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我们项目经理如果看到写这种句子,一定会用键盘敲爆我的狗头
2018-5-30 08:10
0
雪    币: 1420
活跃值: (2181)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
符号优先级问题,但是这么写代码我会打爆他的脑袋
2018-5-30 08:45
0
雪    币: 3
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
逻辑错误 这种问题也是第一次发现, 似乎并没有像想象中的那么运行, 类似自增减的运算我以前在百度上也有回答过.不过被好多人踩了, 其实这个题目VC6和VS2008编出来的, 运行结果是不一样的. 看下图吧:
环境的问题,  但是在Visual  Studio中,是这样运行的:先执行"完整表达式"然后再"序列点"分号之前执行后缀++.
2018-5-30 10:08
0
雪    币: 3
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
不是谭浩强,  是c  primer  plus
2018-5-30 10:09
0
游客
登录 | 注册 方可回帖
返回
//