https://blog.csdn.net/weixin_42889479/article/details/81437659
此篇为复习考研专业课(数据结构)笔记,记录一个值得研究的问题。小哥我是为千百计算机考研大军中的一人,专业课数据结构,今天为大家分享一个有关于c语言指针传值的问题,其中夹带了许多个人理解,欢迎批评指正。
大家都知道指针的使用是c语言编程的基础核心,今天我们就来探讨一下传入*a与*&a的区别。
简单的说一下这两个东西:
*a :在定义变量时表示的是一个指针类型的变量,而在代码中(执行部分)则表示取出该指针所指向内容的值。
*&a:通常用于函数的传值,表示传入指针本身,不作复制(后面讲这句话的意思)。
首先,我用一段代码引出要讨论的问题,请看如下代码和执行结果:
#include#includevoid transformTrue(int *&point);
void transformCopy(int *point);
int main(){
int *a,*b,i=0;
transformTrue(a);
transformCopy(b);
for(i=0;i<5;i++) {a[i]=i;}
printf("-------------------------------\n");
printf("形参为*&a---->\n");
for(i=0;i<5;i++){printf("%d ",a[i]);}
printf(&