background image

情况都推荐使用引用。

 

以上 2-8 参考:http://blog.csdn.net/wfwd/archive/2006/05/30/763551.aspx 9. 结构与联合有和
区别?
1. 结构和联合都是由多个不同的数据类型成员组成, 但在任何同一时刻, 联合中只存放了
一个被选中的成员(所有成员共用一块地址空间), 而结构的所有成员都存在(不同成员
的存放地址不同)。
2. 对于联合的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了, 而对于结构

 

的不同成员赋值是互不影响的。 10. 

 

下面关于 联合 的题目的输出? a)

#i nclude <stdio.h> union {
int i;
char x[2]; }a;
void main() {
a.x[0] = 10; a.x[1] = 1;
printf("%d",a.i);
}
答案:266 (低位低地址,高位高地址,内存占用情况是 Ox010A  

) b) main()

{
union{ /*定义一个联合*/ int i;
struct{ /*在联合中定义一个结构*/ char first; char second; }half;
}number;
number.i=0x4241; /*联合成员赋值*/
printf("%c%c\n", number.half.first, mumber.half.second); number.half.first='a'; /*联合中结构成
员赋值*/ number.half.second='b'; printf("%x\n", number.i); getch();
}

 

答案: AB (0x41 对应'A',是低位;Ox42 对应'B',是高位)
6261 (number.i 和 number.half

 

共 用 一 块 地 址 空 间 ) 11.   已 知 strcpy 的 函 数 原 型 : char 

*strcpy(char *strDest, const char *strSrc)其中 strDest 是目的字符串,strSrc 是源字符串。不调
用 C++/C 

 

的字符串库函数,请编写函数 strcpy。

答案:
char *strcpy(char *strDest, const char *strSrc) {
if ( strDest == NULL || strSrc == NULL) return NULL ; if ( strDest == strSrc) return strDest ;
char *tempptr = strDest ;
while( (*strDest++ = *strSrc++) != ?\0?) ;
return tempptr ; }
!!!!!!!!!!!!!!!!!!!!12. 已知 String 类定义如下:
class String
{
public:
String(const char *str = NULL); // 

 

通用构造函数 String(const String &another); // 拷贝构造函

 

数 ~ String(); // 析构函数
String & operater =(const String &rhs); // 

 

赋值函数 private:

char *m_data; // 

 

用于保存字符串 };

 

尝试写出类的成员函数实现。 答案:
String::String(const char *str)