笔试1

一、计算机内存空间
1、栈区 {系统栈(main()函数中),函数栈}
存放局部变量(作用域结束自动释放)
2、堆区:用户自己申请的,自己释放{未释放会造成内存泄漏}
3、静态全局区:
静态变量:static修饰,全局变量:作用于所有作用域的变量
程序结束释放
4、文字常量区:存放字符串常量
5、代码区
二、空指针和野指针
0、0L 、3 - 3(它们都是“integer constant expression”整数常量表达式)以及 (void*)0 等都是空指针常量(注意 (char*) 0 不叫空指针常量,只是一个空指针值)。
空指针:如果一个 空指针常量 赋给了一个有类型的指针变量,那么这个指针就叫空指针
空指针不可赋值
野指针:指向非法的或已销毁的内存的指针
出现情况:
1、指针变量未初始化
2、指针ptr被free后,只是指针的内存销毁了,斌没有改变指针的值,好比亲戚搬家了,但你还留着旧地址
应在释放空间后将指针置为空。
三、逻辑地址和物理地址
物理地址:加载到内存地址寄存器中的地址,内存单元的真正地址。在前端总线上传输的内存地址都是物理内存地址,编号从0开始一直到可用物理内存的最高端。这些数字被北桥映射到实际的内存条上。物理地址是明确的、最终用在总线上的编号,不必转换,不必分页,也没有特权级检查
逻辑地址:CPU所生成的地址。逻辑地址是内部和编程使用的、并不唯一。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址(偏移地址),不和绝对物理地址相干。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值