两个不同的答案

我怕我也有两个不同的答案,用Turbo C IDE。
现在,答案可能在于优先顺序,虽然我不能满意地解释它。
在这里,根据表亚历克斯了:
前递增和动态初始化了第三箱,以评估要从右到左。
因此,在第二种情况下,情况可能:
(左到右)
int x(这评价第三、给x = 13)= + + Y(这evalautes二,给y = 7)+ Y(这个评价第一,给y = 6);
在第一种情况下,没有动态初始化,因此,X是几乎相同的方式评估。
X = + + + Y;
+ + Y具有更高的优先级,比任何其他操作数进行声明7 apeice,给予回答14。

虽然,我认为这可以解释一下,我想确认一下……我会在论坛上发布一个时间……,看看有没有人同意我的观点,或者提供更好的解释。

这是technorat说。
考虑这个表达式:X =(A + +)+(A + +);
现在发生的事情是它的价值,增加了一个它的价值,并在递增(如果= 5,则X是10,并将最后的7)。
这是同一件事情,当有+ +在前面。
例X =(+ + A)+(+ + A);
它需要一个值,增量它,然后它看到另一个+ +在语句中,所以它增加了一个“A”,然后它添加,这意味着如果一个是5,那么X将是14,和一个将是7。
而且你真的不需要括号,在这种情况下,作为C++比标准+号高优先级(虽然它有助于可读性)。

很好的问题,是的,你错了。
当你正确地注意到,+ +有更高的优先级比=,所以X + +首先评估。当X + +评估时会发生什么?编译器将X的值(5)的临时副本。那么实际变量x增加到6。然后x(5)的副本的值用于评价。因此,x + +的计算结果为5,现在6,即使变量x是现在设置为6!
因此,“y = x + +”变成了“y = 5”,因此Y被赋值为5。
您可以通过将此行在您的编译器中,然后在之后打印x和Y的值来验证这是真的。

嘿亚历克斯!有点不对劲儿。我无法写xminusminus(一个变量“x”后减量)。当我回顾我xminusminus发表评论,我只在X看单减(类似“X”)。这不是一个大问题,你可以忽略这个问题。我只是想清楚你在上面的表格中犯了一个错误。对不起,这个额外的评论。
它是好的,当我使用[代码]标签。
看一看表的最后一行(表中显示的两个版本的递增递减运算符):
“后缀减量(预减)”| -- | X X X |评价,然后减量
应该是:
“后缀减量(后减量)”| -- | X X X |评价,然后减量
一个问题。我的数学不太好。我仍然可以成为一个好的程序员吗?数学是如何与编程有关的?


伟大的工作亚历克斯与这些教程,虽然我没有完全理解什么副作用是从阅读本次章节。所以我决定做一点研究,以帮助澄清什么副作用是什么。我把我收集的东西放在下面。我知道一个下面的例子使用功能printf()(用于C语言)而不是cout,但C++取代C,这个功能也可以在C++和仍然是相关的。以下是我发现的信息:
一个计算机程序将数据存储在变量中,这些变量代表计算机存储器中的存储位置。这些内存位置的内容,在程序执行的任何一个给定的点,被称为程序的状态。
任何修改计算机状态或与外界进行交互的操作都有副作用。看到维基百科的副作用。
例如,这个函数没有副作用。它的结果只取决于它的输入参数,而没有关于程序的状态或它的环境的变化时,它被称为:




国际广场(int x)
{
返回X * X;
}
相反,调用这些函数会给你不同的结果,这取决于你打电话给他们的顺序,因为他们改变了计算机的状态:










十一
int n = 0;
国际next_n()
{
返回n + +;
}
无效set_n(国际台)
{
N =台;
}
此函数有写入数据输出的副作用。你不调用函数,因为你希望它的返回值;你称它为,因为你想要的效果,它对“外部世界”:




int写(const char *的)
{
返回printf(“输出:%s \n”,S);
}
副作用的行为的一种常见的表现是,在C++赋值操作符。例如,赋值返回右操作数,并具有将该值赋给变量的副作用。



int x;
x = 5;/ /评估和返回右操作数5,并有分配5到x的副作用
x = 2 + 7;/ /表达式2 + 7的计算值为9,赋值返回值为9;并且有赋值9到x的副作用
我只是想我会提到,一个表达式的评价没有副作用,如果它不改变机器的观察状态,并产生相同的输入相同的值。
它也应该指出,虽然副作用不仅是对操作数的修改,它还可以涉及到其他对象的修改,全局数据,I / O操作等基本上,任何改变,除了返回值是一个副作用。
引用:
http:/ /恩。维基百科。org /维基/ state_ % 28computer_science % 29 # types_of_states
http:/ /恩。维基百科。org /维基/ side_effect_ % 28computer_science % 29
http://programmers.stackexchange.com/questions/40297/what-is-a-side-effect
http:/ /恩。维基百科。org /维基/ assignment_ % 28computer_science % 29
https://bytes.com/topic/c/answers/669181-side-effects
http://faculty.orangecoastcollege.edu/sgilbert/book/04-2-sideeffects-b/index.html
http://stackoverflow.com/questions/4143575/expressions-with-no-side-effects-in-c

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值