指针的一些概念

来源:互联网 发布:淘易通软件多少钱 编辑:程序博客网 时间:2024/06/02 16:16
概念
 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 下面看一些概念
 *指针的类型
 *指针所指向的类型
 *指针的值或者叫指针所指向的内存区
 *指针所指向内存区域的值
 *指针本身所占据的内存区

 指针的类型:指针本身的类型,比如 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的值)


  

原创粉丝点击