形参的&与*的区别 您所在的位置:网站首页 形参和实参怎么区分 形参的&与*的区别

形参的&与*的区别

2024-07-14 13:34| 来源: 网络整理| 查看: 265

在定义时,* 是一个标识符,声明该变量是一个指针,比如说int *p; 那p就是一个指向int型的指针;

在调用时,*p是指指针p指向的那个变量,比如说之前有int a=5;int p=a;那么p的值是a的地址,也就是指针p指向a,p则等于a的值,即p=5。 而&,则是引用,比如说有定义int a=5;再定义int b=&a;那么这里的b则引用a的值,即b=5 ,而再给b赋值:b=10,a的值也会变为10。 我想楼主会问和&的区别,应该是针对函数定义里的参数而言吧,因为这里的这两者比较相似: 举几个简单例子: 先定义有int x=0;和int *p=x; 1、若定义函数: void fun_1(int a){ a=5;} , 则调用:fun_1(x); 之后,x还等于0;因为fun_1函数只改变了形参a的值,a只是fun_1函数里的局部变量,调用fun_1(x)相当于是“a=x;a=5;”,x没变; 2、若定义函数:void fun_2(int &a){ a=5;} , 则调用:fun_2(x); 之后,x等于5;因为这里的a引用了x的值; 3、若定义函数:void fun_3(int a){ a=5;} , 则调用:fun_3§; 之后,x也等于5;因为fun_3函数的参数a是一个指针,相当于a=p;a则与p指向同一地址,改变a即改变p即x



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有