课程
/后端开发
/C++
/C++远征之起航篇
不是指针不行吗,为什么别的参数类型就不是指针,什么时候定义指针类型,什么时候不用啊,指针这里真的搞不明白。
2019-05-01
源自:C++远征之起航篇 5-1
正在回答
我先定义一个数组 int a[10];
然后下面有两种调用,等价的。
int fo(int a[]);
int fo(int *a);
为什么是等价的?
数组名就是一个指向数组首地址的常量指针(人家就是指针啊)
在这里,定义一个指针类型,输入实参的时候才能把数组名放进来,定义一个指针,就相当于这个地方的参数是一个地址,调用函数的时候需要输入一个数组时,要把数组中元素一个一个输入的效率太低,所以干脆用指针类型的形参把数组首个元素的地址作为形参输入,后续的程序调用过程会更加方便。
指针和数组名都是代表地址
不过
int a[4];
int *p=a;
p所指向的地址就是a首元素的地址
类似
p+1与a[1]也是一样的
举报
C++亮点尽在其中,本课程是在C语言基础上的一个延伸,得以升华