深入理解指针(5)
sizeof是操作符,不是函数
十六进制内存中00有\0的作用
下面这个是不行的,因为arr里面存的整型,不是字符串
地址的长度也是4个或8个字节(看是X64还是X86)
例题:
C语言中,一个字符占用一个字节
p为地址时,p[i]和*(p+i)一般在何时何地均等价
未说明时,问是多少个字节,则答在X86环境(即32位的)下的(比如:问int类型占多少个字节)
数据存到内存里面怎么拿出来的问题:
比如:在printf中-4的打印 用%d打印时,会将补码转换成原码再转化为10进制打印出来 用%p打印时,因为地址是无符号整数,所以直接把补码按照16进制打印出来(补码的每四个数看做2进制,用此变为16进制)
%s打印字符串时,需要的就是地址来去打印
一个*不能一步到位直接解引用到最最最初(有个地方好像记错了)
内存空间的画法