C/C++八股文知识积累3-指针

目录

定义

指针占用内存大小

指针的类型系统

特殊指针-void指针

函数指针

野指针和内存泄露


定义

指针就是一个变量,其值是另一个变量的内存地址。这也是C和C++语言直接操作内存的最直接体现,最灵活也是最容易出错的地方。

指针占用内存大小

根据定义,指针是一个变量,存放的值是内存地址,所以其占用大小取决于计算机的内存地址大小。对于64位计算机,其地址是64位,此时指针变量占8字节,对于32位计算机,其地址是32位,指针变量占4字节。(这里所说的多少位计算机一般指的是计算机中寄存器的位数,也是计算机的地址位数,也是cpu在单位时间内能处理,传输的位数)。

指针的类型系统

由于指针变量只是存放了一个地址,所以它的类型就至关重要,决定了指针算术运算的步长,解引用时访问的内存大小,类型安全检查。

  1. 指针算术运算的步长,由于其值是地址,当指针指向数组中的元素时,其+1,地址变化取决于其类型,int的话则地址+4,double的话则地址+8.
  2. 由于指针的值只是地址,所以并不知道指向的地址是什么内容,所以得以类型告诉它指向的内容是什么,在使用时才知道应该读取多大的内存,如何解释这些字节。
  3. 指针的类型显性告知才能让编译器进行的很多类型的检查,如强制转换是否合法,赋值是否合适等。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值