阿里笔试题记录(Android客户端部分)

阿里笔试题记录(Android客户端部分)

选择题

Alt text

结果应该是选择 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]表示声明一个指针,指向一个长度为10的char数组。
  • sizeof()函数,以字节的形式返回其操作数的存储大小。当操作数是指针时,该函数依赖于编译器…当操作数是数组类型时候,返回值是数组的总字节数。所以,sizeof(p)是计算的元素类型为char指针,元素数量为10的数组的大小,计算方式为元素类型占用内存的字节数*数组元素个数,sizeof(p1)是计算一个指针的大小。参考文章解析c语言的sizeof
  • 在编译器为
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值