C++的pointer问题?

来源:百度知道 编辑:UC知道 时间:2024/06/06 13:05:14
int a (int *x){}
int b (int &x){}
这两个函数分别接受什么样的参数,为什么?

第一个是指针,接收指针类型的实参,第二个是引用,接收整型实参

第一个是接收int类型的指针(传址),第二个接收int类型数据(传值)。

引用,相等于给变量起“别名”,使用过程是对原数据的使用。如:

#include <iostream.h>
void fun(int & x)
{
x = x + 1; //这里x就是a,x只是a的“外号”
}
void main()
{
int a=10;
fun(a); //传值
cout<< a <<endl;
}

指针,是存储变量的地址。
#include <iostream.h>
void fun(int *x)
{
*x = *x + 1; //取地址里的数据运算
}

void main()
{
int a=10;
fun(&a); //传地址,
cout<< a <<endl;
}

指针与引用的区别。

第一个是指针,第二个是引用。

你举的这个例子实际上没有太大的区别,只是写法上有点不同,达到的效果是一样的。

要想弄明白指针与引用的区别,google 一下:指针与引用的区别