第七章_指针

一、指针变量-地址-内存

指针变量:保存 内存地址编号 的 变量

        (普通变量 和 指针变量 分别保存数字20时,指针变量 会认为他保存的是 内存地址编号 20)

地址:系统为 内存每一个字节 分配的一个 32位 的编号 (虚拟地址)

  • 32位平台,每个进程有 4G(寻址能力2^32字节=4G) 内存空间 ;

       故即使有10G的内存,也只能读取4G;

       因此如果有8G内存,建议装64位系统

  • 指针 即 地址,指针变量 指向 地址地址 是 内存编号,即 指针 指向 内存编号
  • 32位平台下,不管什么类型的地址,都是4字节(32比特位),

        即 任何类型指针变量 都是 4字节大小

  • int 变量 num; 则 &num 指 首地址

问1:为什么 32位系统任何类型指针变量 都是 4字节大小?

(1)任何类型:

空间大小 和 里面存的东西是什么类别 无关

(2)4字节:

指针变量 指向 内存地址编号,

32位系统中每个内存编号是32位即4字节,

故 指针变量 拥有4字节空间

问2:4字节内存空间对应4个地址(16字节),怎么存的下?

1个指针变量一次只指向1个地址

二、指针变量

1.指针变量的定义:

定义步骤

将(*指针变量名)替换 保存地址的对象名 

【定义时 * 为 指针变量声明符;引用时为 解引用符 

(*p)替换 int num 中的num,据优先级判断可否去掉括号

  • 定义一个指针变量p,保存 int num 的地址:      int *p
  • 定义一个指针变量p,保存 int arr[5] 的首地址: int (*p)[5]
  • 定义一个指针变量p,保存 int *q 的首地址: 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值