做了一套C++的题,有下面这几道题不懂。请c++达人指教:

1.若有chara[3]={‘A’,‘\0','D'},*p=a,i=2,j=4;则下列表达式不是1的有(C)A.strlen(a)B.j&&jC.*(p+1)D--i(... 1.若有char a[3]={‘A’,‘\0','D'},*p=a,i=2,j=4;则下列表达式不是1的有(C)
A.strlen(a) B.j&&j C.*(p+1) D--i
(PS:整型占2个字节)

2.假定AB为一个类,则执行“AB a(4),b[3],*p[2];"语句时,自动调用该类构造函数的次数是(B)
A 3 B 4 C 6 D 9

3.对于结构中定义的成员,其隐含访问权限为(public)
这个题很经典,但是我一直不懂这句话的意思,请高手解释一下。
展开
 我来答
aifeiasdf
2013-04-16 · TA获得超过101个赞
知道答主
回答量:121
采纳率:0%
帮助的人:64.4万
展开全部
1. strlen这个函数遇到'\0'就返回 在'\0'前有一个A所以返回1 排除 &&运算符返回1或者0,当两者都为非0返回1,否则返回0, 排除 ,i==2 执行--i自然为1 所以答案为c 因为p目测是指向数组的指针,(p+1)操作是表示指针指向下一个单元及时指向了‘\0’的单元,在用*(p+1)取值自然得到的不是1

2.当然这个题可能有歧义,前提应该是这个类包含默认的构造函数和接收一个参数的构造函数,构造函数的调用是当类需要创建对象的时候,这里 创建对象a的时候以及创建类的数组的时候都需要创建对象,而创建类指针则不用创建对象 所以构造函数调用4次

3.就是说在c++中结构体其实也是被当做类的,与类不同的是里面的成员默认访问权限为public,(类的默认访问权限是private,除非你用private标记)

还有不明白么
cao2324076
2013-04-16 · TA获得超过705个赞
知道小有建树答主
回答量:163
采纳率:0%
帮助的人:89万
展开全部
例如:
struct A

{
int a;

char b;

}

这样定义的结构体的成员变量,a、b外界都是可以直接访问的。
再例如
struct A
{
public:

int a;
private:

char b;
}
这样定义的结构体中,a是公共的,b 是私有的外界无法直接访问。
也就是定义结构
struct A
{
int a;
char b;
}
隐含了
struct A
{
public:

int a;
char b;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xnd09
2013-04-16 · TA获得超过201个赞
知道小有建树答主
回答量:350
采纳率:100%
帮助的人:91.5万
展开全部
第一个,C:p指向a,也是a[0],p+1,就是a[2],是\0,ascii是0;A:strlen函数在遇到\0时结束判断,故只算了1个;B &&(与),0和任何值与,结果是0,非0与非0,结果为1.
隐含访问权限默认应该是protected啊,咋会是public呢。第2个不是很明白意思
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
feixiete2010
2013-04-16
知道答主
回答量:14
采纳率:0%
帮助的人:4.8万
展开全部
第一题,用排除法,A:“\0”为字符串结束标志,所以a的长度为1。B:任何数与自身相与为真,即为1。D:i=2,--后自然为1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式