首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++如何更改

C++如何更改
EN

Stack Overflow用户
提问于 2022-11-22 00:34:01
回答 1查看 53关注 0票数 0

这是我的问题,我得到了这段代码,它需要为变量a,b,c写出2,5,1。但是捕获是不应该改变的,只有函数。我设法将b改为5,但我真的不知道如何在不使用厕所的情况下将a改为2。下面是代码:

代码语言:javascript
复制
#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;
}

每一次帮助都会受到高度赞赏。

我试过使用指针,但不应该更改主指针。

EN

回答 1

Stack Overflow用户

发布于 2022-11-22 00:45:33

如果您不能修改函数签名,那么这是一个可怕的问题。正如所写的,这是不可能的。编译器可以假定a保持1。

我见过一种教授想让你上床睡觉

代码语言:javascript
复制
int& function(int a, int* b, int c) 
{
    b[1] = 2;
    return *b;
}

但是这依赖于UB,一个特定的体系结构和禁用的优化。https://godbolt.org/z/rc1d9oqab

如果允许修改函数签名,是的,那么传递一个a的引用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74526268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档