ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

指针知识点

2026/8/12 16:12:47 拓冰建站 浏览量
指针知识点 1.内存可以分为大量内存单元一个内存单元大小为8个比特位每个内存单元都有一个编号这个编号就是指针。一栋大房子有很多房间每个房间可以住8个人房间编号就是指针也是地址只有嵌入式的地址是实际物理空间其余是假象的2 取地址操作符 用于取出字符地址#includestdio.hint main(){ int a10;a;printf (“%p\n”,a);return 0;}3 指针变量用于存放地址的一种变量例int *paa;这个就是把a的地址存放到pa中这也是用a给pa初始化a是读出的地址全部变量int paint main(){ int a0;int paNULL;retur 0;}此时相当于pa没有存放地址可以之后再存但是如果是局部变量a在一个小函数内此时int pa是一个未知数也叫做野函数不可以强行使用4 理解指针类型int a10;int *paa;这里**说明pa对应·指针变量但int对应的是pa的类型总说是一个整型的地址5 解引用操作符#includestdio.hint main(){ int a10;int *paa;pa0;return 0;}这里pa是通过pa中存放的地址找到a,将a赋值为10找到门牌号然后客人6 指针的大小例 printf“%zd\n”,sizeof(int*)1字节8比特32平台下地址是32比特4字节64平台下地址是64比特8字节指针变量的大小只与平台有关指针解引用例 int *pia;*pi0;char *pichara; *pi0;前者可以把4个字节改为0但后者只可以改一个这是不同类型对解引用符的作用权限。总结一下指针变量的大小只与平台有关指针对解引用操作符的权限与指针类型有关7.指针加减整数指针类型决定了指针向前或向后的距离但指针必须跨越与自己同类型的距离char*1 向前走1个长度int*1向前走4个长度8.void指针专门用于接收不同类型的地址voidpa10;viod*pc10;pc和pa9.指针加减指针指针加减指针整数指针加减整数指针F2897-2F2895指针加减指针的结果绝对值是指针间元素的个数必须在同一个内存#includestdio.hint main(){int arr[5]{1,2,3,4,5}printf(“%d\n,”arr[4]-arr[2])return 0;}这里arr[4]-arr[2]便是指针加减指针10.指针的大小本质一个数值用数组举例先明确一个点p这个存的·是地址*p这个即使指针符号也是解引用取数组里的数#includestdio.hint main(){int arr[5]{1,2,3,4,5};int *parr;int szsizeof(arr)/sizeof(arr[0]);while(parr[sz]) 这个地方就是用·了·指针的比较{printf(“%d\n”,*p);p;}return 0;}11.传值调用和传址调用前者相当与给复印件不给原稿但后者相当于直接给原稿前者实参不改变形参改不了原值但后者可以给实参传值调用void eaxple(int x,int y){int tmpx; \这里已经定义了x是int,一个变量只能定义一次xy;ytmp;\左边是变量右边是赋值量int tmp已知为赋值量}这种情况无返回值传址调用#includestdio.hvoid eaxple(int x,int y){int *tmp x;xy;y*tmp;}这样才打开房门把数值传过去一个是把门牌改变里面数值不变一个是打开房门改数值后者才可以建立函数与主函数的关系12.二级指着用来存放一级指针的指针变量**ppa用来存放pa的指针变量访问pa