[英]C++ how to change the value of a
这是我的问题,我得到了这段代码,它需要为变量 a、b、c 写出 2、5、1。但问题是主要的不应该改变,只有 function。我设法改变了b 到 5,但我真的不知道如何在不使用指针的情况下将 a 更改为 2。 这是代码:
#include <iostream>
using namespace std;
int& function(int a, int* b, int c) {
return *b;
}
int main()
{
int a, b, c;
a = b = c = 1;
function(a, &b, c) = 5;
cout << a << " , " << b << " , " << c << endl;
return 0;
}
每一个帮助将不胜感激。
我尝试使用指针,但不应更改主要内容。
如果你不能修改 function 签名,那就是一个可怕的问题。 正如所写,这是不可能的。 允许编译器假定a
将保持为 1。
我见过有一种教授希望你上交:
int& function(int a, int* b, int c)
{
b[1] = 2;
return *b;
}
但这依赖于 UB,一种特定的架构和禁用优化。 https://godbolt.org/z/rc1d9oqab
如果您被允许修改 function 签名,是的,那么传递a
.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.