5道题目求解答!(有更多加分)

来源:百度知道 编辑:UC知道 时间:2024/05/29 11:18:00
1。一个字符串类 CMystring & operator = (CMystring & obj)
请问返回值类型可否是CMystring类型?

2.声明完数组后是否必须初始化?

3.char *p="aaa";
printf("%s\n",p)输出的是字符串,怎样可以输出字符串的首地址?

4.定义对象是在栈上分配空间还是堆上分配的空间?
class A
A a;

5.二分查找为什么必须是顺序表,不能是链式表?
1。一个字符串类 CMystring & operator = (CMystring & obj)
请问返回值类型可否是CMystring类型?
答:不可以
为什么?

匿名的朋友能不能给个例子再详细讲讲关于字符串的题目
因为我用CMystring 作返回值程序也不出错
我问了一些人,他们说用引用做返回值不会调用拷贝构造函数(而对象做返回值会调用拷贝)所以用CMystring&仅仅是减少了程序开销,提高了效率。

补充:
对于赋值来说,只是将当前的变量指向赋值变量,内存中只有一份,所以必须要返回引用,这样他们都指向同一处地址

1。一个字符串类 CMystring & operator = (CMystring & obj)
请问返回值类型可否是CMystring类型?
答:不可以

2.声明完数组后是否必须初始化?
答:不是必须的,使用之前初始化就可以啦。
3.char *p="aaa";
printf("%s\n",p)输出的是字符串,怎样可以输出字符串的首地址?
答:printf("%x\n",p);输出指针地址

4.定义对象是在栈上分配空间还是堆上分配的空间?
class A
A a;
答:题中是在栈上分配的,如果是用A* a = new A;则是在堆上分配的
5.二分查找为什么必须是顺序表,不能是链式表?
答:二分查找需要随机访问数据,链式表不能随机访问数据,而顺序表式可以的

不会

1. 我只用c,C++不会,呵呵

2. 声明完数组后是否必须初始化?
应该是定义完声明完数组后是否必须初始化?
局部变量定义后为随机值,需要初始化,全局变量不用,系统自己做了。

3.printf("%s\n",p)改为printf("%d\n",p)

4.局部变量定义是栈上,只有new或melloc才是在堆上,全局变量在专用数据段。

5.因为只有是顺序排列2分才有意义,比如1到9查找6,用2分先查5,然后2分找7,然后再2分找到6,如果不是按顺序排列的话324598761,2分找到中间一个9后是找9的前面还是后面?显然没意义。