一、指针
int a = 10; // a的地址为: 0x123456;
// 1. 定义指针
int *p;
// 2. 让指针记录变量a的地址
p = &a; // &a为:0x123456 p为:0x123456
// 3. 指针赋值
*p = 1000; // a的值为:1000 *p为:1000
二、const修饰指针
// 1. const修饰指针 —— 常量指针
int a = 10;
int b = 20;
int *p = &a;
const int *p = &a; //特点:指针指向的地址可以修改,但是指针指向的值不可以改
*p = 20; //错误,指针指向的值不可以该
p = &b; //正确,指针指向的地址可以改
// 2. const修饰指针 —— 指针常量
int a = 10;
int b = 20;
int *p = &a;
int *const p = &a; //特点:指针指向的地址不可以修改,但是指针指向的值可以改
*p = 20; //正确,指针指向的值可以该
p = &b; //错误,指针指向的地址不可以改
// 3. const即修饰指针,又修饰常量
int a = 10;
int b = 20;
int *p = &a;
const int *const p = &a; //特点:指针指向的地址不可以修改,指针指向的值也不可以改
*p = 20; //错误,指针指向的值不可以该
p = &b; //错误,指针指向的地址不可以改
三、数组指针
int data[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9};
int *p = data; // data就是数组的首地址