一级指针:
- 定义: int *p; // 定义一个int型的指针变量('*'的此时不是解引用运算符的作用,而是表示声明一个指针变量)
- *取址运算符'&': &p; //访问指针变量p在内存中的地址
- *解引用运算符'*': *p; //访问指针变量p所指向地址的内存的数据
- *直接使用: p ; //访问指针变量p所指向的地址
- 赋值: int n=1;p=&n; //将int型在内存中的地址赋给指针变量p
- 输出: cout<<*p<<&p<<p; //输出指针变量p所指向对应地址内存的数据,p在内存的地址,p指向的地址
二级指针:
- 定义: int **p2; //定义一个int*型二级指针变量 *注意:二级指针只能指向一级指针的地址
- 赋值: int *p,n=1;p2=&p; //确定二级指针p2指向哪个一级指针
- 输出: cout<<**p2<<*p2<<&p2<<p2; //分别输出p2跳越2次地址后最终的数据,p所指向的地址,p2在内存的地址以及p在内存的地址
代码实例:
#include<iostream> |
注意attention:
- 二级指针只能被一级指针变量赋值,当被其他类型赋值时会出现报错
- 图示: