gpt4 book ai didi

c++ - 为什么这个 C++ 代码会输出结果?

转载 作者:IT老高 更新时间:2023-10-28 22:35:27 24 4
gpt4 key购买 nike

这是 C++代码:

#include<iostream>
using namespace std;


int a=8;

int fun(int &a)
{
a=a*a;
return a;
}

int main()
{

cout << a << endl \
<< fun(a) << endl \
<< a << endl;
return 0;
}

为什么会输出:

64 64 8

<<运算符的关联性是从左到右的,所以为什么不输出 8 64 64 ?

它与序列点和效果端有关系吗?

最佳答案

关联性和评估顺序不是一回事。表达式 a << b << c相当于 (a << b) << c由于从左到右的关联性,但在评估顺序方面,编译器可以自由评估 c先后a << b同样,它可以评估 b在它评估之前a .事实上,它甚至可以按 b 的顺序评估术语。 → ca如果它愿意,它可能会得出这样的结论,即这样的顺序将通过最小化管道停顿、缓存未命中等来最大化性能。

关于c++ - 为什么这个 C++ 代码会输出结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9857320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com