C++不确定行为

C++不确定行为

大家好,又见面了,我是全栈君。

     一个简单的程序引发了一块让人纠结的领域,也许强调编程规范的重要性也在这把。规范了就easy避免一些问题。

程序是这种

int Change(int& a) { a = 4; return a; } int main() { int a = 10; cout << Change(a) << a; }

In C-Free : the output : 4 4

In VS2008 : the output : 4 10

差别出来了,按我的理解,应该C-free输出的对,可是还是探究了下,下面是我别人给我的回复:

Simply put, there is no rule that guarantees that “4 4” is right. Same goes for “4 10”.

As others have mentioned in the comments you have a case of undefined behaviour here. Even if this would be defined behaviour, code like this is difficult to understand. So I recommend to do

cout << Change(a); cout << a;

or

int b = a; cout << Change(a); cout << b;

whatever you really want to do.

另外,找到了C++不确定行为的一片天,有兴趣的能够在这里继续探究非常多C++出现不确定行为的情况。

http://en.cppreference.com/w/cpp/language/eval_order

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116346.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 新手小白学JAVA 正则表达式 包装类 自动装箱/自动拆箱 BigDecimal

    新手小白学JAVA 正则表达式 包装类 自动装箱/自动拆箱 BigDecimal1正则表达式Regex1.1概述正确的字符串格式规则。常用来判断用户输入的内容是否符合格式的要求,注意是严格区分大小写的。1.2常见语法1.3String提供了支持正则表达式的方法Matches(正则):当前字符串能否匹配正则表达式replaceAll(正则,子串):替换子串split(正则):拆分字符串1.4练习:测试输入身份证号创建包:cn.tedu.api创建类:TestRegex.javapackagecn.tedu.api;impo

    2022年5月2日
    37
  • 联合概率,边际概率,条件概率的区别_非条件概率和边际概率

    联合概率,边际概率,条件概率的区别_非条件概率和边际概率一时忘了联合概率、边际概率、条件概率是怎么回事,回头看看。某离散分布:联合概率、边际概率、条件概率的关系:其中,Pr(X=x,Y=y)为“XY的联合概率”;Pr(X=x)为“X的边际概率”;Pr(X=x|Y=y)为“X基于Y的条件概率”;Pr(Y=y)为“Y的边际概率”;从上式子中可以看到:Pr(X=x,Y=y)=Pr(X=x|Y=y)*Pr(Y=y)

    2022年10月18日
    0
  • 嵌入式系统原理课后习题练习

    嵌入式系统原理课后习题练习嵌入式系统原理及应用—-基于ARMCortex-M3内核的STM32F103系列微控制器答案仅供参考,不喜勿喷~~本人比较懒,后面的就没仔细整

    2022年6月5日
    135
  • robotium 代码

    robotium 代码Robotium之用例分析    http://blog.csdn.net/wirelessqa/article/details/7847466robotium各种方法:http://wenku.baidu.com/link?url=XoPtudf4lgpyzhbLPGJ-6ie8VM2hcCb4Gl6rHozgOrgxWfK52nj-kHzhFbZDkoc_FASztmmPG

    2022年7月25日
    5
  • 多尺度二维离散小波分解wavedec2

    多尺度二维离散小波分解wavedec2对X进行N尺度小波分解[C,S]=wavedec2(X,N,’wname’);clc,clearall,closeall;loadwoman;[c,s]=wavedec2(X,2,’db1′);%进行2尺度二维离散小波分解。分解小波函数-db1[cH1,cV1,cD1]=detcoef2(‘all’,c,s,1);%尺度1的所有方向的高频系数[cH2,cV2,c…

    2022年7月23日
    9
  • linux phy调试方法_php执行shell命令

    linux phy调试方法_php执行shell命令enumphy_state{ PHY_DOWN=0, PHY_STARTING,//1 PHY_READY,//2 PHY_PENDING,//3 PHY_UP,//4 PHY_AN,//5 PHY_RUNNING,//6 PHY_NOLINK,//7 PHY_FORCING,//8 PHY_CHANGELINK,//9 PHY_HALTED,//10…

    2025年5月25日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号