gpt4 book ai didi

c++ - 在函数参数未定义行为中使用赋值运算符吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:22:31 26 4
gpt4 key购买 nike

我在大学导师写的一个例子中找到了一些类似的代码。

int main(){
int a=3;
int b=5;
std::vector<int>arr;
arr.push_back(a*=b);
std::cout<<arr[0]<<std::endl;
}

是否有明确定义的行为? arr[0] 是 3 还是 15(或者完全不同的其他值)?Visual Studio 输出 15,但我不知道其他编译器是否会这样响应它。

最佳答案

在执行 push_back 之前,需要计算作为参数传递的表达式。那么a *= b的值是多少。好吧,它将始终是 a * b 并且 a 的新值也将设置为该值。

关于c++ - 在函数参数未定义行为中使用赋值运算符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35153210/

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