在函数调用中c++中的& 与 c中的* 有什么异同

2024-10-30 12:16:20
推荐回答(3个)
回答1:

相同点:
  都是地址的概念;
  指针指向一块内存,它的内容是所指内存的地址;而引用则是某块内存的别名。
不同点:
  指针是一个实体,而引用仅是个别名;
  引用只能在定义时被初始化一次,之后不可变;指针可变;引用“从一而终”,指针可以“见异思迁”;
  引用没有const,指针有const,const的指针不可变;
  引用不能为空,指针可以为空;
  “sizeof引用”得到的是所指向的变量(对象)的大小,而“sizeof指针”得到的是指针本身的大小;
  指针和引用的自增(++)运算意义不一样;
  引用是类型安全的,而指针不是(引用比指针多了类型检查)

回答2:

在c++中,&为引用,*表示指针

#include
int main()
{
int number=0,&rNumber,*pNumber;
rNumber=number;//表示要引用number,同义词了
pNumber=&number;//表示取出它的地址
cout<cout<<&number<cout<<*pNumber<return o;
}
由于字体可能存在切换问题,建议在调试的时候,重新输入一遍

回答3:

虽然有不同的名称,不同的叫法,&始终是一种取地址运算符,*常见的做指针,其本质也是取值运算符,C和C++中没有区别