指针的一些概念

概念
 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 下面看一些概念
 *指针的类型
 *指针所指向的类型
 *指针的值或者叫指针所指向的内存区
 *指针所指向内存区域的值
 *指针本身所占据的内存区

 指针的类型:指针本身的类型,比如 int *i 则指针类型为 int * ,即去掉变量剩下的部分为指针的类型。

 指针所指向的类型:指针所指向变量的类型,比如 int *i 指针向int型变量,所以指针所指向的类型为int,即去掉指针变量名和左边的*号,是    指针所指向的类型。

 指针的值或者叫指针所指向的内存区:因为指针是存放的变量的地址,所以指针的值一定是个地址值。即指针所指向的变量所在的内存地址。比如 int *p 则指针的值直接 cout<<p<<endl; 即可得到。

 指针所指向内存区域的值:指针所指向内存区域,即指针中所存放的内存地址。因为那个内存地址是指针所指向变量的地址,所以指针指向内存区域的值即为它指向变量的值。比如:
int i;
int *p;
p = &i;
cout<<*p<<endl;
最后一句即输出了指针所指向内存区域的值

   指针本身所占据的内存区: 指针也是一个变量,它存储的值是一个地址,它本身也要点用内存空间,指针本身所点内存区为:
int *p;
cout<<&p<<endl;

相关的例子:
 int i = 5;
 int *p;
 int **ps;
 p = &i;
 
 ps = &p;

 cout<<&i<<endl;  //整形变量i所在的地址
 cout<<p<<endl;  //p存放i的地址,这输出p的值,与&i相同
 cout<<&p<<endl;     //指针p本身的地址
 cout<<ps<<endl;     //指针ps存放指针p的地址,这里输入ps的相,与上面&p相同
 cout<<*ps<<endl; //这里输入ps所指向内存区域的值,因为ps指向p,即为p的值,而p指向i,所以这里输入i 的地址即:&i or p

 cout<<&ps<<endl;   //这里输入ps本身所占内存区域的值。

 cout<<i<<endl;  //i的值
 cout<<*p<<endl;  //i的值 p 指向内存区域的值
 cout<<**ps<<endl;  //i的值 ps指向内存区域的值(i 的内存地址) 的 内存区域的值(i的值)


  

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值