指针的引用理解和复杂声明的理解

本文深入探讨了C++中指针与引用的工作原理及其使用方式,通过具体实例展示了如何利用指针与引用进行变量操作,同时解析了复杂声明如多重指针及常量指针的含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可能看到第二部分,改变了引用指向对象指针.(所以引用可以对引用对象指针直接操作)

去掉每二部分,只改变引用指向指针的变量内容的变量的值.

(注意只针对一般指针而不引用PCC而言

*P运算符表一个变量,P指向的变量.

这个变量的地址是&*P

而引用指向的变量,引用就等价这个变量,所以,PCC指向一个指针变量,就等价这个指针注意是新的指针变量,(可以再汇编看一下),如果指向是一个数字变量,就等价这个数字变量,改变引用就能改变这个变量.

*&pP应是一个变量。(对于引用来说,PCC指向一个指针变量,不能表示出只能在汇编看到,所以COUTPCC这个引用就相当这个新的指针,*PCC却是这个指针指向的结果数字变量.AB等价.
因为NEW指针,不能表现出,只能通*PCC=AB这种形式,来改变.就改变变量AB的内容.

New指针和PCC并没有改变.只不过改变*PCC等价改变XBB变量.

 

 

int ccb=88;

 int *&pcc=&ccb;

 cout<<"pcc:"<<pcc<<endl;

 cout<<"&ccb:"<<&ccb<<endl;

 cout<<"ccb:"<<ccb<<endl;

 

 cout<<"---------------"<<endl;

 

 int xxb=99;

 *&pcc=&xxb;

 cout<<"&xxb:"<<&xxb<<endl;

 cout<<"*&pcc:"<<*&pcc<<endl;

 cout<<"pcc:"<<pcc<<endl;

 cout<<"*pcc:"<<*pcc<<endl;

 cout<<"xxb:"<<xxb<<endl;

 cout<<"&ccb:"<<&ccb<<endl;

  cout<<"ccb:"<<ccb<<endl;

 

  cout<<"---------------"<<endl;

 

 

  int xxx=100;

 // *&pcc  =&xxx;

    *pcc=xxx;

  cout<<"&xxx:"<<&xxx<<endl;

 cout<<"*&pcc:"<<*&pcc<<endl;

 cout<<"pcc:"<<pcc<<endl;

 cout<<"*pcc:"<<*pcc<<endl;

 cout<<"xxb:"<<xxb<<endl;

 cout<<"&ccb:"<<&ccb<<endl;

  cout<<"ccb:"<<ccb<<endl;

 

以下对复杂声明的理解.

 

 //  char a='a';

//   char *b=&a;

// char ** p1=&b;

 

//const char **p2;        //    pointer to    pointer to const char

   //  char x2='x';

   //  const char  *bx2=&x2;

   //  const char **p2=&bx2;

 

 

//char * const * p3;       //    pointer to const pointer to    char

//  char hh1 ='d';

//char * const hh3=&hh1;

//char * const *p3=&hh3;

 

//const char * const * p4;    //    pointer to const pointer to const char

//const char a1='d';

//const char * const a2=&a1;

//const char * const * p4=&a2;

 

//char ** const p5;       // const pointer to    pointer to    char

 //char dd='d';

// char * dd1=&dd;

 //char * * const p5=&dd1;

 

 

//const char ** const p6;    // const pointer to    pointer to const char

//const char a='e';

//const char * dd =&a;

//const char ** const p6=&dd;

 

 

//char * const * const p7;    // const pointer to const pointer to    char

//char a='d';

//char * const tt=&a;

//char * const * const p7=&tt;

 

 

//const char * const * const p8; // const pointer to const pointer to const char

//const char a='b';

//const char * const cc=&a;

//const char * const * const p8=&cc;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值