c++的*与&简单总结

c++中的*与&对于初学者来说,确实有点让人搞懵。因为在变量的定义和调用时,*和&都会表现出不一样的含义。

 一、

    1.*在定义时是声明该变量是一个指针,例如int *p;    //那p就是一个int型的指针。

    例1:int a = 0; int *p = a;    //那p的值就是a的地址。

    注:上面的int a = 0; int *p = a;实际上是int a = 0; int *p = &a;这两者是等价的!!!

    原因是int *p = &a;时,c语言本身提供了可以略去&的简写,但是本人不是很喜欢这样的写法,因为这样会误导初学者!

    所以大家还是写全比较规范一点,写完int *p = &a,这样比较好。

    c++就没有这样的简写机制,大家可以测试一下。

    2.*在调用时是指针指向的那个变量,是取值运算符

    例2:int a = 0; int *p = &a; printf("*p = %d\n", *p);

二、

    1.&在定义时是定义一个引用,例如:int a = 0; int &b = a;那么b就是a的引用,即b=0;如果再给a赋值a=10,则b也会变为10;如果给b赋值b=20,则a也会变为20;

    2.&在调用时是一个取地址运算符。例如:int a = 0; printf("&a = %p\n", &a);会打印出a的地址,这个地址因为变量a在各个计算机的地址的不一样,所以打印的也不一样。

    注:&在调用时还有一种与运算,如:int a = 0; a&=0;    //按位与操作,这个就不细说了

三、

    最近看到网上有关"c++*&符号连在一起"是什么意思,相信大家看完了一、二之后能自己解答出来的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值