用户定义函数中的指针和输入

Posted

技术标签:

【中文标题】用户定义函数中的指针和输入【英文标题】:Pointers and input in user define functions 【发布时间】:2020-07-13 11:48:33 【问题描述】:

在此我通过引用调用了add() 函数,我怀疑在这种情况下它如何发送输入。我的意思是它使用 &p = a 并且&(any variable) 代表变量的地址吗?

#include<iostream>
using namespace std;
void add(int &p)

    p++;

int main()

    int a=55;
    add(a);
    
    cout<<a;
    
    return 0;

【问题讨论】:

func(int &amp;p) 表示通过引用传递,在这种情况下,使用对传递的原始变量的引用并且不进行复制。如果您愿意cout &lt;&lt; &amp;a,您将获得内存地址。 @interjay 编译就好了 &amp; 在 C++ 中用于多种不同的目的。在 &amp; 类型中表示引用,例如int&amp; p 表示 p 是对整数的引用。在表达式中&amp; 表示地址,例如&amp;a 将是 a 的地址。 @Waqar 那是因为问题被编辑了。 【参考方案1】:

&(any variable) 表示变量的地址吗?

是的。

什么是引用?

简单地说,引用只是别名。这意味着p 只是参考a 的另一种方式。您对pa 所做的任何更改都将反映在另一个中。但是,您不能将引用变量重新分配给其他东西。引用只需初始化一次,然后重复使用。

例子:

int main()

    int a=55;
    int &p = a; //p is referring to a
    p++;        // a = 56, p = 56
    a = 100;    // a = 100, p = 100
    
     //address of both are same as well
    cout << &a << '\n';
    cout << &p << '\n';
    
    int x = 33;
    p = &x; // error
    &p = x; // error, can't change
    p = x; //ok, but now a = 33, p = 33, (p is not referring to x)

【讨论】:

以上是关于用户定义函数中的指针和输入的主要内容,如果未能解决你的问题,请参考以下文章

C 语言二级指针作为输入 ( 自定义二级指针内存 | 二级指针排序 | 抽象业务逻辑函数 )

如何将输入传递到用户定义函数中的命名列表

c++ 用户输入 2个值 定义二维数组 但是报错

angularjs自定义指令中的ng-change函数在用户第二次输入后更新输入值

iostream/fstream中的输入输出流指针的绑定,tie函数的使用。

C语言函数参数描述中的[in][out]是什么意思?(输入型参数和输出型参数)(表示这是传递给函数用于读取数据的,还是用来输出的地址指针地址,多个值可以用结构体指针)