【发布时间】:2020-07-06 23:33:17
【问题描述】:
我只是将指针用作函数参数,我知道这一点。
#include <iostream>
using namespace std;
void func(int *a)
{
*a+=1;
return;
}
int main()
{
int a=1;
cout<<a<<endl;//prints 1
func(&a);
cout<<a;//prints 2
return 0;
}
我的问题是为什么下面的代码与上面的代码类似,更准确地说
当我们从主函数调用 func(&a) 时在上述情况下
// 4字节(int大小)数据的起始地址被传递,在我们的函数(func)中,这个地址存储在本地指针'a'中,当我们写*(a)时,我们的编译器知道读取4 个字节的数据,因为它是一个整数指针。
简而言之,我的问题是
我们传递给 'func' 的具体内容是什么 当我们调用 func(a) 时,'a' 是一个存储整数值的变量 func(int &a) 到底是什么意思
#include <iostream>
using namespace std;
void func(int &a)
{
//cout<<*a;// error
a+=1;
// cout<<a<<endl;
}
int main()
{
int a=1;
cout<<a<<endl;// prints 1
func(a);
cout<<a;// prints 2
return 0;
}
抱歉英语不好
【问题讨论】:
-
提示:谷歌什么是
reference。你在这里通过引用传递a。