指针

来源:互联网 发布:华住集团 知乎 编辑:程序博客网 时间:2024/06/11 08:55

指针,其一指针本身就是一个对象,允许对指针赋值和拷贝,而且在指针的生命周期内它可以先后指向几个不同的对象,其二,指针无需在定义是赋初值。

定义指针类型是将声明符写成*d的形式,其中d是变量名,如:int * p1;//int * 为类型名,p1为变量名

指针存放着某个对象的地址,要获取改地址,就要用到&取地址符


如果指针指向了一个对象,则允许使用解引用符 * 来访问该对象

如:int i = 22;

int *p = &i;

cout<<*p<<endl;//即输出的是i的值


#include<iostream>
#include<string>
using namespace std;
int main()
{
int i = 1;
//int *p;  p为变量名,int* 为类型名
int *p = &i;//p存放着变量i的地址,也可以说p是指向i的指针,即变量名p的值是存放取地址符i的地址。*p相等于i,两者的值相同
//由符号*得到指针p所指向的对象,即变量i
//int * *p1;  *p1为变量名,int* 为类型名
int * *p1 = &p;//因为p的类型为int* 型,获取对象的地址必须要求两类型一致,所以*p1的类型也为int* 型
//其中变量名*p1存放的是变量名的p的地址,也就是*p1是指向p的指针,*p1的值存放的是p的地址
int *p2 = p;//即p2存放着p的地址,也就是存放着的是i的地址,
//*p2就是以变量名p2所存放的那个变量的地址,所代表的值,
//int *p2 = p;中因为p存放的是变量i的地址,在这里将i的地址赋给变量名p2,变量名p2也存放的是i的地址,则*p2的值正是以i的地址所表示的值,即i的值为1
cout << p << endl;
cout << *p << endl;
cout << *p1 << endl;
cout << **p1 << endl;
cout << *p2 << endl;//由符号*得到指针p2指向的变量i
return 0;
}

结果如下:


0 0
原创粉丝点击