1.理解指针
1.1 指针含义
需要特别注意的是我们在定义一个指针后需要先将该指针变量指向NULL,即定义一个空指针,这样做是为了防止定义指针后该指针指向一陌生区域,导致使用指针时出现错误
指针类型需要与指向空间内值的类型相同
#include <stdio.h>
int main() {
int a;
a = 3;
int *p=NULL; //定义一个int型指针变量,变量名为p
p = &a; //将a的地址赋值给p,&为取地址符
//划分一块内存存放a的值,用变量名为这块内存命名,即可以通过变量名直接访问这块内存
printf("a的值为:%d\n", a);
//输出a的值为:3
printf("a的地址为:%p\n", &a); //输出地址需要用%p占位符
//输出a的地址为:000000000062FE1C
printf("p的值为:%p\n", p);
//输出p的值为:000000000062FE1C
printf("p的地址为:%p\n", &p);
//输出p的地址为:000000000062FE10
return 0;
}
当我们定义一个指针变量后,我们可以将该指针变量理解为地址箱,箱内可存放不同的地址,但是箱内只能存一个地址,可以这样理解指针即地址
1.2 指针访问空间
"* "星号符为访问符,访问指针变量所指空间内的值