指针
来源:互联网 发布:华住集团 知乎 编辑:程序博客网 时间: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;
}
结果如下:
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 业务
- 安装Ubuntu Kylin 16.04 UKUI预览版后要做的事
- Codeforce 598E(递推)
- 正则表达式
- 语言模型-SRILM(1) 安装
- 指针
- Struts2知识点
- CodeForces 731B Coupons and Discounts
- Linux学习:计算机和操作系统的基础知识
- android Activity间传递数据后返回数据。
- Linux_CentOS_NAT和桥接方式切换
- R 语言的学习(一)
- Java 基本数据类型 范围及默认值
- OKHttp的各种情况使用