sizeof 面试问题总结

由于,昨天晚上刚和女朋友分手,导致今天的面试是一塌糊涂,加上平时确实忽略了基础的东西,所以,在这里登记一下,铭记!!!!!!!!!!!!!!


int a[] = {1,2,3,4};

char *str = "hello world";

char *p=str;

struct st_{

char ch;

int it;

}st;


1.sizeof(a) = ?

2.sizeof(str) = ?

3.sizeof(p) = ?

4.sizeof(st) = ?

5.sizeof(*str) = ?


前提是,我们假设机器时32位的。

1.答案应该是16,这个因该没有问题,在32位的机器上,一个int是4个字节,所以a数组的大小因该是16

2,3.答案因该都是4,应为指针的大小,是表示该指针所能够表示的范围的大小,所以,在32位的机器上,指针能够指向的最大的地址就是32位,也就是4个字节

4.答案是8,因为存在地址对齐的问题

5.答案因该是1,因为*str其实就是指向的str【0】,str【0】是一个char字符,所以大小是1.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值