程序输出结果如何完成下图的输出?

32位系统上一般编译器的处理结果為8, 16, 24

class A实际使用的空间为7但是编译器要做到32bit对齐,因此会讲char k[3]补齐到四字节而函数aa虽然为virtual方法,但因为A并没有包含同样原型声明的基类因此也占用4个字节(32位系统上函数地址都为32bit).

class B因为集成了class A的属性,再使用同上的原则导致B本身又要使用8个字节因此为 16字节。

通过前面的规则可鉯对端class c占用24字节

但不同的编译器对对齐的处理并不完全一致,如果编译器不做对齐处理或对齐处理方式不同占用的空间就不一样了。

point【2】是three这个字符串的首地址带仩取值 * 号就为three这个首地址里面的元素

很显然 这个元素是t 不可能是 \0 所以你的条件是成立的 打印出t 执行循环 由于point[2]++让地址偏移了1位所以在第二次條件判断的时候 因为h 不是 \0 所以继续成立,打印出h····

依次类推 到最后一个字符 就是 \0 会停止打印

你对这个回答的评价是

你对这个回答的評价是?

你对这个回答的评价是

我要回帖

更多关于 程序输出结果 的文章

 

随机推荐