c++ - 通过指针传递引用

标签 c++ pointers reference

为什么这个程序只有在我初始化 a 和 b 时才有效。 我想在不初始化a和b的情况下传递它,例如:

numChange(10,15);

这可能吗?

#include <iostream>
using namespace std;
void numChange(int *x,int *y)
{
     *x = 99;
     *y = 77;
}

int main()
{
    numChange(10,15);
    //int a=10;
    //int b=15;
    //numChange(&a,&b);
    cout<<a<<" , "<<b<<endl;

    return 0;
}

最佳答案

因为您已将函数定义为接收指针,但是当您调用该函数时,您正试图传递一个 int。

编译器需要内存地址,而您正试图传递常量。

这没有意义,你正在尝试做类似 10 = 99 的事情; 15 = 77;?

numChange(10,15);
    //int a=10;
    //int b=15;

看来你在跳跃 a = 10 = 99 和 b = 15 = 77;

如果这是可能的,那就意味着我永远无法(在调用 numChange(10,15); 之后)使变量实际具有值 10,因为 10“指向”99(不是)。

关于c++ - 通过指针传递引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13426808/

相关文章:

c++ - MFC 应用程序如何自行终止?

c++ - 使用 MFC 或 Win32 显示内存缓冲区中的所有位图类型

c - 释放由另一个二进制文件分配的内存

c++ - 类方法中的新指针必须转换为引用

将 void 指针转换为 long 类型,而不是 long 指针?

c++ - _mm_sfence 与 __faststorefence

c++ - 如何模拟将对象引用作为参数的函数 - 谷歌测试

c++ - 使用引用/指针调整数组大小

c++ - 如何声明对经过模板参数推导的类型的右值引用?

c# - 在 Visual Studio 中查找引用