一:内存地址的概述
系统给内存的每一个字节,分配一个编号,这个编号就是内存地址
指针:就是内存的地址编号 指针就是地址 地址就是指针
二:指针变量
指针变量:本质是一个变量,只是这个变量不是存放普通的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); }