当前位置: 首页 > news >正文

c语言指针篇

p是地址 *p是解引用这个地址里面的数据

假如 定义数组int a[5]={1,10000,3000,400000,5}; int *p=a; *p+1代表先运行*p等于1然后加1,如果是*(p+1)那么就是p地址加一个步长(步长看p指针的类型这里是int就是四个步长而数组也是int类型所以就是到a[1]这个位置了)那么值就是10000

指针和指针变量是有区别的,指针可以直接理解为地址,指针变量是存放指针(地址)的一个地方。

问题1:int a=0x11223344; char *p=&a;为什么int类型的指针也能被char类型的存放啥意思啊?

核心是理解指针变量的类型(比如char*)和它存储的地址值本身是两回事——char* p = &a并不是 “把 int 类型的指针存到 char 类型里”,而是 “把 a 的地址(指针)存到char*类型的指针变量里”。

先明确两个核心前提

  1. 所有变量的地址(指针),本质都是内存编号:不管是int achar b还是double c,它们的地址都是一串十六进制数字(比如0x7ffeefbff5c4),这个地址值本身没有类型,只是一个内存位置的标识。
  2. 指针变量的类型(char*/int*),约束的是 “解引用时的内存访问规则”:指针变量的类型不限制 “能存哪个变量的地址”,而是限制 “通过这个指针访问内存时,一次读 / 写多少字节”。
  3. 2. 「指针变量大小」≠「指针解引用访问的大小」

    这是最容易混淆的点,也是指针类型的核心意义:

  4. 指针变量的大小(4/8 字节):是 “存地址” 需要的空间(你理解的这部分完全对);
  5. 指针类型(char*/int*)的作用:是 “解引用时访问多少字节”(和指针变量本身的大小无关)

总结:在 32 位系统中,地址总线是 32 位,地址值需要 4 字节存储,因此所有指针变量(不管char*/int*)的大小都是 4 字节;64 位系统中指针变量占 8 字节。正因为指针变量的大小固定且相等,所以char*能存放int变量的地址(不是 “存放 int 指针”)—— 本质是 “同大小的容器能装下同一个地址值”,而指针类型只影响解引用时访问的字节数,不影响存储地址的能力。

指针变量就是门牌号,都是4位或8位的,但是里面的房子可以是40平的(例int float),也可以是10平的(char)。

http://www.jsqmd.com/news/490811/

相关文章:

  • 第八届信息科学、电气与自动化工程国际学术会议(ISEAE 2026)
  • FLUX.小红书极致真实V2惊艳效果:小红书风‘高级感’配色与留白美学呈现
  • Java签名防篡改:我用HMAC干翻“配置被改”资损事故!附保姆级避坑指南
  • YOLOv11改进策略【卷积层】| arXiv 2025 加权卷积Weighted Conv 密度函数提表征 + 零参扩展降负担,提升目标检测精度
  • C程序中隐藏的数据溢出陷阱
  • SmallThinker-3B-Preview效果惊艳:支持多跳推理的复杂因果关系分析实例
  • Gemini 3深度量化分析:Google的万亿参数巨兽到底有多强?
  • Tabularis:一款面向开发者的轻量级数据库管理工具
  • File的用法
  • LLM大规模数据的组织检索方法
  • 30款IDEA插件宝贝,开发效率yyds!
  • 基于博途V16的程序:传送带机械手工件搬运监控系统
  • HAC集群切换后断档问题处理
  • GPT-5.4 深夜上线!百万上下文+原生操作电脑,OpenClaw 天选模型来了!【附GPT升级教程】
  • Matplotlib绘制拆线图自定义曲线颜色显示
  • JAVA今日面经(一)
  • 发电机组并网技术研究
  • 工业物联网百科全书
  • 立创开源广场自动签到脚本V1.1
  • KMP算法之 next 数组的计算
  • 净水器行业的下一步:从卖设备到卖服务
  • 「OpenClaw 实战全攻略」:从打造 Second Brain 到服务器自愈,20+ 真实落地场景解析
  • 欧洲十家运营商联手对抗星链:一场关于天空的“地缘保卫战”
  • 第六讲:OpenClaw+Deepseek+飞书低成本安装龙虾指南(最新)
  • SceneV:基于Vue3与ThingsBoard的高性能低代码组态可视化解决方案
  • 底部填充胶 (Underfill) 怎么选?AI 算力芯片与 CoWoS 先进封装导热用胶白皮书—37W/m·K 高导热与 13ppm 极低 CTE :峻茂芯片级应力管理指南
  • 高级java每日一道面试题-2025年8月27日-基础篇[LangChain4j]-如何审计 LLM 的输入输出?
  • 2025_NIPS_Transformer brain encoders explain human high-level visual responses
  • Select、Poll、Epoll详解:核心区别与实战用法
  • coding plan vs token