| 查看: 1897 | 回复: 32 | ||
sunchuanxi新虫 (初入文坛)
|
[求助]
关于c语言中++i计算的问题已有4人参与
|
|
|
请问q的值为多少,我试了下是22,但不理解 #include "stdio.h" void main() { int j=5,q; q=(++j)+(++j)+(++j); printf("%d",q); } |
» 猜你喜欢
职称评审没过,求安慰
已经有22人回复
申请26博士
已经有4人回复
垃圾破二本职称评审标准
已经有15人回复
投稿Elsevier的Neoplasia杂志,到最后选publishing options时页面空白,不能完成投稿
已经有20人回复
EST投稿状态问题
已经有7人回复
毕业后当辅导员了,天天各种学生超烦
已经有4人回复
聘U V热熔胶研究人员
已经有10人回复
求助文献
已经有3人回复
投稿返修后收到这样的回复,还有希望吗
已经有8人回复
三无产品还有机会吗
已经有6人回复
» 本主题相关价值贴推荐,对您同样有帮助:
惊天战神[国语版}等13部高清电影!影视之第1贴!!
已经有5人回复
virtualzx
木虫 (著名写手)
- 应助: 263 (大学生)
- 金币: 7161.3
- 红花: 54
- 帖子: 1605
- 在线: 317.6小时
- 虫号: 2069080
- 注册: 2012-10-18
- 性别: GG
- 专业: 理论和计算化学
【答案】应助回帖
|
按照c++规定的解析顺序规则,应自左向右逐个计算每个++i表达式的值并相加,每次取值前i的值递增1,因此得到21。 然而C++是十分重视速度和优化的语言,C++标准允许编译器在不改变结果的情况下任意变换表达式的结构。但是当变量的值在表达式内变化时,编译器很难优化,所以C++标准第五章第四条规定,在任何两个顺序点之间(这里分号;就是顺序点。其他顺序点包括比较算符和不同变量的初始化分隔符等),任何标量变量的值最多改变一次。 编译器是无法在编译时判断变量改变次数的,因此你的语句并不会被拒绝,但是它还是可以以最多变化一次为假设对表达式变形,而这是不正确的假设,因此这时得到的值就不一定和标准顺序规定的值一致,不同编译器都会得到不同结果,甚至不同版本结果都会不同(vc++里甚至按照debug和release编译得到的结果都不一定一样) 究其原因,是因为这个语句本身已经违反了C++标准。其他语言如C#就规定编译器必须严格遵守求值顺序不能随意变换,但速度会受影响 发自小木虫IOS客户端 |
16楼2016-04-26 12:10:43
4楼2016-04-25 22:28:56
|
百度的答案。。。当i=1时。。j=(++i)+(++i)+(++i)=(((++i)+(++i))+(++i)) 计算机在计算j=(a+b)+(c+d)+(e+f)先计算(a+b)+(c+d),并把结果存储(例如:存储在j中),然后再计算j+(e+f)=j; 所以计算机先计算了两个++i(前两项i为3,++i先于+号);也就是j=3+3;然后j=6+(++i)(最后的i为4),也就是j=6+4=10。 首先++i=2,再计算第二个++i=3,此时计算机里i=3,第一个i也=3,第二个i也=3,因为计算机里只有一个i,因此原式=(3+3)+4=10,记住计算机里只有一个i,算第二个时第一个i改变了 发自小木虫Android客户端 |
» 本帖已获得的红花(最新10朵)
7楼2016-04-25 23:06:46
wo2cast
木虫 (著名写手)
- 应助: 43 (小学生)
- 金币: 3216.8
- 红花: 3
- 沙发: 1
- 帖子: 1859
- 在线: 332.9小时
- 虫号: 4389236
- 注册: 2016-01-31
- 性别: GG
- 专业: 控制理论与方法

2楼2016-04-25 22:03:45
sunchuanxi
新虫 (初入文坛)
- 应助: 2 (幼儿园)
- 金币: 601.4
- 红花: 1
- 帖子: 47
- 在线: 22.8小时
- 虫号: 3558373
- 注册: 2014-11-25
- 性别: GG
- 专业: 计算数学与科学工程计算
3楼2016-04-25 22:17:48
sunchuanxi
新虫 (初入文坛)
- 应助: 2 (幼儿园)
- 金币: 601.4
- 红花: 1
- 帖子: 47
- 在线: 22.8小时
- 虫号: 3558373
- 注册: 2014-11-25
- 性别: GG
- 专业: 计算数学与科学工程计算
5楼2016-04-25 22:45:51
sunchuanxi
新虫 (初入文坛)
- 应助: 2 (幼儿园)
- 金币: 601.4
- 红花: 1
- 帖子: 47
- 在线: 22.8小时
- 虫号: 3558373
- 注册: 2014-11-25
- 性别: GG
- 专业: 计算数学与科学工程计算
6楼2016-04-25 23:02:37
8楼2016-04-25 23:09:38
爱风happy
新虫 (初入文坛)
- 应助: 0 (幼儿园)
- 金币: 1551.1
- 散金: 30
- 帖子: 41
- 在线: 34.3小时
- 虫号: 3885152
- 注册: 2015-05-22
- 专业: 计算数学与科学工程计算
9楼2016-04-26 01:00:04
virtualzx
木虫 (著名写手)
- 应助: 263 (大学生)
- 金币: 7161.3
- 红花: 54
- 帖子: 1605
- 在线: 317.6小时
- 虫号: 2069080
- 注册: 2012-10-18
- 性别: GG
- 专业: 理论和计算化学
10楼2016-04-26 07:13:29













回复此楼
sunchuanxi