C语言中指针相关总结
C语言指针总结
1: 常用的取值方式
-
*(星号)
间接寻址运算符,通过一个内存地址访问一个值(一种操作)
-
&(数学逻辑符号:与/和
取地址运算符,获取一个值的内存地址(一种操作)
2: 寻址方式
-
直接寻址:直接通过变量名来获取变量的值,或直接用变量的地址来存储值,例如:
scanf("%d", &a); // 把值通过a的地址直接存储到变量a里。
printf("%d", a); // 直接通过变量名a获取a中的值 -
间接寻址:变量a的内存地址存放在指针变量p中。先通过指针变量名p获取p中的地址数据,再通过这个地址数据访问a的值
例如: int a = 99; int *p = &a p: 存放a的内存地址数据(16进制)。// 输出类型为%p,数字99在内存中存放位置的地址数据。 操作: *p:获取指针变量p中存放的地址数据对应的存放位置(即a)的值。// 输出类型为%d,结果为99。 &p:获取指针变量p的内存地址数据。// 输出类型为%p,结果为16进制的8位地址。 &*p:首先通过p获取a的值,然后获取a的内存地址数据。// 输出类型为%p,与p的值相同。 *&p 相当于 *(&p) -> 指针指向p的位置,p处存的是a的地址, **p: 二级指针 举个例子 int **p :二级指针,表示p所指向的地址里面存放的是一个指向int类型的指针(即p指向的地址里面 存放的是一个指向int的一级指针)也就是说指向指针变量的的指针。这个二级指针变量指向的是一个指针变量的地 址
3: 使用指针的准则:
- 要清楚每个指针指向的位置,且必须指向一个有意义的位置
- 要清楚每个指针指向的位置里的内容
- 不要使用未初始化的指针变量
本文来自博客园,作者:笨笨的二黄子,转载请注明原文链接:https://www.cnblogs.com/zwhdd/p/17187512.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix