读书人

c++:程序输出结果的题!

发布时间: 2012-02-29 16:44:10 作者: rapoo

c++:程序输出结果的题!!急,,求助,
32位平台下,以下代码
class Base
{
public:
Base (){};
~ Base (){};
};

class CDemo
{
public:
CDemo() {}
virtual ~CDemo() {}
protected:
static int m_siObjCnt;
Base m_ob;
};
void main()
{
CDemo ob;
cout<<sizeof(ob)<<endl;
}
的输出是:( c)
A)4
B)5
C)8
D)12

设char *p = “hello,world”, 下面操作正确的是:( b )//这样的题该怎么做啊。。是考虑优先级么?
A) (*p)++B) *p++C) ++*pD) *p = ‘I’


不懂。。能否详细讲解下这两道题。。谢喽


[解决办法]
2.
p是指针
*是指针运算符
*p则是p所指地址中的值

优先符 ++>*
所以选B
[解决办法]
第2个考察的是++ 和*的优先级,++的优先级比*的高

所以先p++ 然后*P取地址
[解决办法]
CDemo 存在虚函数,则有虚函数表指针 4个字节;然后一个base的实例占1个字节;static变量在subobject中不占位。 一共5个字节,然后加上对齐共8个字节。


第二个只要不修改常量字符串的操作都可以算对。

读书人网 >C++

热点推荐