面试题目之C++(一)
2012-02-20 12:06
197 查看
Q1: static 作用,static 变量在内存位置,非static 的变量在内存什么位置?
A1: static 可以使在function 里的变量或者类里的变量,保证不变,不会因为函数调用完毕,或者类实例的析构而消失。 static 还可以定义全局 function 或 变量 只在当前文件使用,文件外是不可见的。
static在内存的静态存储区
非static 的局部变量存在 栈空间,或者new malloc的是在堆空间中。
Q2: 查出下面代码错误。
char * test(int v)
{
char buf[6+1];
switch(v)
{
case 1: strncpy(buf, "Case 1", sizeof(buf));
case 2: strncpy((buf,"Case 2", sizeof(buf));
case 3: strncpy((buf, "Case 3", sizeof(buf));
case deafult: strncpy((buf, "default", sizeof(buf));
}
return &buf;
}
int main()
{ char * p = test(2);
cout << p << endl;
} A2:1,没有break;
2,return &buf 是错误的,数组名是没有地址的。
3,应该修改成 char* buf = (char*) malloc (8 * sizeof(char)); return buf;
Q3:为什么析构函数不能够被重载?
A3:1,可以通过virtual 实现多态。
2,因为析构函数不能够被显示调用,重载会影响原来功能。
A1: static 可以使在function 里的变量或者类里的变量,保证不变,不会因为函数调用完毕,或者类实例的析构而消失。 static 还可以定义全局 function 或 变量 只在当前文件使用,文件外是不可见的。
static在内存的静态存储区
非static 的局部变量存在 栈空间,或者new malloc的是在堆空间中。
Q2: 查出下面代码错误。
char * test(int v)
{
char buf[6+1];
switch(v)
{
case 1: strncpy(buf, "Case 1", sizeof(buf));
case 2: strncpy((buf,"Case 2", sizeof(buf));
case 3: strncpy((buf, "Case 3", sizeof(buf));
case deafult: strncpy((buf, "default", sizeof(buf));
}
return &buf;
}
int main()
{ char * p = test(2);
cout << p << endl;
} A2:1,没有break;
2,return &buf 是错误的,数组名是没有地址的。
3,应该修改成 char* buf = (char*) malloc (8 * sizeof(char)); return buf;
Q3:为什么析构函数不能够被重载?
A3:1,可以通过virtual 实现多态。
2,因为析构函数不能够被显示调用,重载会影响原来功能。
相关文章推荐
- C/C++ 笔试、面试题目大汇总
- C/C++笔试、面试题目大汇总
- C++常见笔试面试题目:string类的拷贝赋值运算符函数
- c++的面试题目
- C/C++校招笔试面试经典题目总结四
- C++面试出现频率最高的30道题目
- C/C++ 笔试、面试题目大汇总,转自http://www.cnblogs.com/fangyukuan/archive/2010/09/18/1829871.html
- C/C++ 笔试、面试题目大汇总
- C/C++ 笔试、面试题目大汇总-1
- C/C++ 笔试、面试题目大汇总
- 最近面试C++程序员的一些题目
- c++面试题目(1)
- C/C++ 笔试、面试题目大汇总
- 华为--C++ 笔试+面试题目
- C/C++ 笔试、面试题目大汇总2
- C/C++ 笔试、面试题目大汇总
- C++面试出现频率最高的30道题目(二)
- linux c/c++ 面试题目整理(一)
- 程序员代码面试指南:IT名企算法与数据结构题目最优解-字符串问题:C/C++语言实现
- C++面试出现频率最高的30道题目