C++ revisit

1,引用不能重新绑定,且引用不是对象,所以没有指向引用的指针

int a=1,b=2;
int &c = a;
int &c = b;//wrong

int a=1;
int &b = a;
int &*c = &b;//error: cannot declare pointer to 'int&'|

2,不能通过const 引用改变引用对象的值,但如果引用对象的值改变,const 引用的值也改变。

int a=1;
const int &b = a;
int &c = a;
c = 2;
cout<<a<<" "<<b<<" "<<c ;


3,指向常量的指针,和常量指针:

int a1=1,a2=2;
const int *b = &a1;//指向常量的指针
int *const c = &a1;//常量指针
cout<<a1<<" "<<*b<<" "<<*c<<endl;
 //*b = 2;//wrong
b = &a2;
*c = a2;
//c = &a2;//wrong 不能改变地址
cout<<a1<<" "<<*b<<" "<<*c<<endl ;

4,指针相互赋值

int a=1,b=2,c=3,d=4;
int *ptr1 = &a;
const int *ptr2 = &b;
int *const ptr3 = &c;
const int* const ptr4 = &d;
cout<<*ptr1<<"  "<<*ptr2<<"  "<<*ptr3<<"  "<<*ptr4<<endl;

指针相互赋值时,底层指针可以相互赋值:

ptr2 = ptr4
const int* const ptr5 = ptr2;

 







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值