
指针基础作用指针是内存最灵活最基础的调度方式内存的基本单位 bit 一位二进制一个晶体管0/1内存的基本管理单位 字节 8个byte1B1字节1K1024B 就是2的10次方地址正整数 用来区分字节每一个字节的内存段都有一个唯一的从0开始的正整数并且不间断整数与之对应首地址一块内存段中最小的那个地址称为首地址简称地址。#includestdio.hintmain(){//获取右操作数首地址intn;printf(n地址%dn);//n 指向n的指针while(1);return0;}指针指明一块内存段已经知道内存段类型大小并且已知内存段首地址是不是整个内存段都知道了 这个首地址称之为指针。指针就是带类型的首地址就是地址就是正整数。地址就是代表字节的正整数首地址就是地址的最前面代表后面还有scanf(%d,n);//通过指针访问n绑定的内存段printf(n地址%d\nn);//通过变量名访问n绑定的内存段指针变量// 存指针的变量 指针变量简称指针int n n是整型变量 char c; 字符变量 float d 浮点型变量定义变量的语法规则类型名 变量名定义指针变量的语法规则类型名 变量名指针的类型名 指向内存段类型名 *int * p; // p存储的指针 是指向 int 类型内存段的。char * p; // p存储的指针 是指向 char类型内存段的。int*p;pn;//指向n的指针赋值给指针变量指针的使用引用 使用引用变量就是访问变量的内存段n6; printf(“n%d\n”n);解引用解引用能且只能作用于指针引用指针变量就是直接使用指针变量绑定的内存段解引用就是使用指针变量绑定的内存段中存放的的指针指向的内存段。// 解引用就相当于根据地址找地方 解引用返回的是内存段不是数据int*p;// p是指针变量名或者指针pn;//指向n的指针赋值给指针变量// 解引用p;*p*(n);找到的是n的内存段//操作的始终是内存段简单使用#includestdio.hintmain(void){// 定义宽字符L前缀代表宽字符常量Windows下wchar_t占2字节(UTF-16)//wchar_t c 中;////char* P c;//// 取宽字符内存第0个字节//printf(%d %c\n, *P, *P);//// 取宽字符内存第1个字节//printf(%d %c\n, *(P 1), *(P 1));//// 顺序打印两个原始内存字节//printf(%c%c\n, *(P 1),*P);//*P ab;//printf(%c\n,*P);//return 0;#if0intn100;intm200;int*pn;printf(%d %d\n,n,n);printf(%d %d\n,m,m);printf(%d %d\n,n8,*(n8));printf(%d %d\n,*p,p8);*p20;printf(%d\n,*p);#elseintn[3]{100,200};int*pn;printf(%d %d\n,n,n[0]);printf(%d %d\n,n[1],n[1]);printf(%d %d\n,(char*)n4,*(p1));printf(%d %d\n,*p,p1);*p20;printf(%d\n,*p);#endif}