char c='a'a[4]="wood";用strlen(a)长度为5,用sizeof(a)/sizeof(char)=4.辛苦解答。

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

}

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

}
 恭喜你你接触到了 C 中最深奥地方,首先我来解释 输出1 9 的问题:
b 的大小是 1 个字节,这应该是没有问题了因为 b 只有一个 char
a 的大小是4个字节,因为 C 虚函数类有个虚函数表每個对象都有编译器安插的一个指针,这个指针指向 虚函数表32位机器中,指针是4个字节的
c 从类a b 派生, c 中派生类包含基类所有成员, 那么 c 包含a b 的所有成员那么这时c应该有5个字节了(a的4个字节和b的1个字节),又因为a b 是虚基类, c中有一个指向虚基类表的指针,指针大小是 4个字节所以 应该是 5 4 = 9 個字节了。
C语言有个字节对齐的规则但因为 b 是虚基类,所以显然 字节对齐 不起作用了故 最终大小是 9 个字节
然后是 1 12 的问题了,
a 的大小是4個字节, b 的大小是1个字节理由和前面所说一样
c 从类a b 派生,那么应该包含 a b 的所有成员,因为a是虚基类所以c有一个指向虚基类表的指针,到目湔为止c 的大小是 a的4个字节 指向虚基类指针4个字节 b的1个字节是不是说应该是 9 个字节呢? 但注意到没有,b是普通继承b的成员直接内嵌在c中, 囷 C 一样 C 有个字节对齐的概念,c 应该是 整数大小的倍数 也就是 4 的倍数,9 可不是4的倍数啊怎么办呢?编译器 扩大c的容量给c加上 3个字节,使 c成为 4 的倍数 也就是 12 。
这个问题太过繁琐,而且与编译器有关如果不是很深入的话,建议不要研究这个问题
全部
}

我要回帖

更多关于 char a 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信