用户定义函数中的指针和输入
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 &p)
表示通过引用传递,在这种情况下,使用对传递的原始变量的引用并且不进行复制。如果您愿意cout << &a
,您将获得内存地址。
@interjay 编译就好了
&
在 C++ 中用于多种不同的目的。在 &
类型中表示引用,例如int& p
表示 p
是对整数的引用。在表达式中&
表示地址,例如&a
将是 a
的地址。
@Waqar 那是因为问题被编辑了。
【参考方案1】:
&(any variable) 表示变量的地址吗?
是的。
什么是引用?
简单地说,引用只是别名。这意味着p
只是参考a
的另一种方式。您对p
或a
所做的任何更改都将反映在另一个中。但是,您不能将引用变量重新分配给其他东西。引用只需初始化一次,然后重复使用。
例子:
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 语言二级指针作为输入 ( 自定义二级指针内存 | 二级指针排序 | 抽象业务逻辑函数 )
angularjs自定义指令中的ng-change函数在用户第二次输入后更新输入值
iostream/fstream中的输入输出流指针的绑定,tie函数的使用。
C语言函数参数描述中的[in][out]是什么意思?(输入型参数和输出型参数)(表示这是传递给函数用于读取数据的,还是用来输出的地址指针地址,多个值可以用结构体指针)