情况都推荐使用引用。
以上 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)