阿里笔试题记录(Android客户端部分)
选择题
结果应该是选择 80,8
思路:
- 指针的值都是一个个地址,而地址是用无符号整型值来表示的,也就是unsigned int
。因此一个指针类型变量的大小就是unsigned int
类型的大小。
- 64位系统,一个地址占用的二进制位数为64(8字节),32位系统,地址的二进制位数32(4字节)。参考64位操作系统的指针不都是64位吗
32位cpu和64位cpu,这个位数指的是数据字长,而不是地址字长。两者没有必然的数值上的联系。处理器字长是指处理器能同时处理的位数。 而处理器的寻址范围是要看处理器的地址总线的位数,32位地址总线能够访问0~2^32-1,也就是2^32个存储单元(4GB),因此32位cpu的指针大小就是4个字节(32bit)。64位处理器的数据总线为64位,而地址总线大都是32位(当然也有的64位处理器的数据总线和地址总线都是64位的)。参考文章32位机指针为什么是4个字节 64位与32位的区别
char*p[10]
表示声明一个能够盛放10个char指针元素的数组,命名为p;char(*p)[10]
表示声明一个指针,指向一个