一:内存地址的概述
系统给内存的每一个字节,分配一个编号,这个编号就是内存地址
指针:就是内存的地址编号 指针就是地址 地址就是指针
二:指针变量
指针变量:本质是一个变量,只是这个变量不是存放普通的10 20数据 而是存放的内存的编号(地址/指针)
在32位平台所有的地址都是4字节
三:定义指针变量
void test02()
{
//普通变量的空间
int num = 10;
printf("&num = %p\n", &num);
//%p是以十六进制输出地址编号
//定义一个指针变量 保存 num的地址
//1、*修饰 指针变量名 *p
//2、保存啥类型变量的地址 就用该类型定义一个普通变量 int num;
//3、从上往下整体 替换//指针变量 变量名为p 在定义的时候 *修饰p为指针变量
int *p;printf("sizeof(p) = %d\n", sizeof(p));
//指针变量 和 普通变量的地址 建立关系
p = #// p == &num
printf("p = %p\n", p);
printf("&num = %p\n", &num);
}
四:指针变量的使用
使用p对所保存的地址空间内容进行读写操作
void test03()
{
int num = 10;
//在定义中 *修饰p为 指针变量
int *p;
p = #
//*p 在使用中 *修饰p 表示 取p所保存的地址编号对应空间的内容
//*p == num
//p == &num
//printf("num = %d\n",num);
printf("num = %d\n",*p);//10
//num = 100
*p = 100;
printf("num = %d\n", num);
//scanf("%d", &num);
scanf("%d", p);//p == &num
printf("num = %d\n", num);
}