1、
2、
3、char str[]=“xunlei”;
char str2[]={‘x’,‘u’,‘n’,‘l’,‘e’,‘i’};
//sizeof(str)计算’\0’,sizeof(str2)不计算’\0’
所以sizeof(str)=7,sizeof(str2)=6
4、while(i++<7) { 语句1 }可以写成:
while(i<7){
i++;
if…
}
5、struct S a[3]={{3,“abc”},{5,“def”},{7,“ghi”}};
p=a;
p中存放a的地址(相当于首元素地址)
A:++p相当于加到a[1],(++p)->n == 5
B:a为首元素地址,+1,相当于加到a[1],(a+1)->n == 5
C:p后++,这时p还是在a[0],p+±>n ==3
D:p+1相当于加到a[1],(++p)->n == 5
6、<code>int i=10, *p=&i; *p =&i等价于 p=&i;*p=i</code>
7、多重继承图示:(以左边为例)
多重继承定义: 一个派生类(D)有2个或2个以上的基类(B和C);
多重继承引起的二义性: 假如上述这些基类(B和C)具有相同的基类A,A中的成员数据和成员函数,最终都会以双份的形式拷贝到类D中,
那么调用的时候就会出现二义性问题。
虚基类: 专门用来解决多重继承引起的二义性问题;(可以理解为D直接从A继承)
8、指针类型总是和int类型长度一致,int 在32位就是4,在64位就是8
9、
a+sizeof(int),等价于a[4]的地址,因为数组a为int型,步长为4,+1就相当于向前进了4字节,等于a[1]地址,+4相当于进了16字节,等于a[4]地址
10、拷贝构造函数和拷贝赋值函数注意点
情况1输出:
情况2输出:
情况3输出
11、
题目
12、
13、
14、
15、
16、
17、
18、
19、
20、
21、
22、
23、
24、
25、
26、