51. 引用与指针有什么区别?
答 、1) 引用必须被初始化,指针不必。
2) 引用初始化以后不能被改变,指针可以改变所指的对象。
3) 不存在指向空值的引用,但是存在指向空值的指针。
52. 描述实时系统的基本特性
答 、在特定时间内完成特定的任务,实时性与可靠性。
54. 全局变量和局部变量在内存中是否有区别?如果有,是什么区别?
答 、全局变量储存在静态数据区,局部变量在堆栈中。
55. 堆栈溢出一般是由什么原因导致的?
答 、没有回收垃圾资源
56. 什么函数不能声明为虚函数?
答 构造函数(constructor)
57. IP地址的编码分为哪俩部分?
答 IP地址由两部分组成,网络号和主机号。
58. 不能做switch()的参数类型是:
答 、switch的参数不能为实型。
59. 如何引用一个已经定义过的全局变量?
答 、可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错
60. 对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现?
答 、c用宏定义,c++用inline
61. C++是不是类型安全的?
答案:不是。两个不同类型的指针之间可以强制转换(用reinterpret cast)
62. 当一个类A 中没有生命任何成员变量与成员函数,这时sizeof(A)的值是多少,请解释一下编译器为什么没有让它为零。
答案:为1。举个反例,如果是零的话,声明一个class A[10]对象数组,而每一个对象占用的空间是零,这时就没办法区分A[0],A[1]…了。
63. 简述数组与指针的区别?
答:数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。指针可以随时指向任意类型的内存块。
(1)修改内容上的区别
char a[] = “hello”;
a[0] = ‘X’;
char *p = “world”; // 注意p 指向常量字符串
p[0] = ‘X’; // 编译器不能发现该错误,运行时错误
(2) 用运算符sizeof 可以计算出数组的容量(字节数)。sizeof(p),p 为指针得到的是一个指针变量的字节数,而不是p 所指的内存容量。
64. C++函数中值的传递方式
答:有三种方式:值传递、指针传递、引用传递
65. 内存的分配方式
答:分配方式有三种,
1、 静态存储区,是在程序编译时就已经分配好的,在整个运行期间都存在,如全局变量、常量。
2、 栈上分配,函数内的局部变量就是从这分配的,但分配的内存容易有限。
3、 堆上分配,也称动态分配,如我们用new,malloc分配内存,用delete,free来释放的内存。
66. extern“C”有什么作用?
答:Extern “C”是由C++提供的一个连接交换指定符号,用于告诉C++这段代码是C函数。这是因为C++编译后库中函数名会变得很长,与C生成的不一致,造成C++不能直接调用C函数,加上extren “c”后,C++就能直接调用C函数了。
Extern “C”主要使用正规DLL函数的引用和导出 和 在C++包含C函数或C头文件时使用。使用时在前面加上extern “c” 关键字即可。可以用一句话概括extern “C”这个声明的真实目的:实现C++与C及其它语言的混合编程。
67. 用什么函数开启新进程、线程。
答案:
线程:CreateThread/AfxBeginThread等
进程:CreateProcess等
68. SendMessage和PostMessage有什么区别
答案:SendMessage是阻塞的,等消息被处理后,代码才能走到SendMessage的下一行。PostMessage是非阻塞的,不管消息是否已被处理,代码马上走到PostMessage的下一行。
69. CMemoryState主要功能是什么
答案:查看内存使用情况,解决内存泄露问题。
70. #include <filename.h> 和 #include “filename.h” 有什么区别?
答:对于#include <filename.h> ,编译器从标准库路径开始搜索 filename.h
对于#include “filename.h” ,编译器从用户的工作路径开始搜索 filename.h
71. 处理器标识#error的目的是什么?
答:编译时输出一条错误信息,并中止继续编译。
72. #if!defined(AFX_…_HADE_H)
#define(AFX_…_HADE_H)
……
#endif作用?
答:防止该头文件被重复引用。
73. 在定义一个宏的时候要注意什么?
答:定义部分的每个形参和整个表达式都必须用括号括起来,以避免不可预料的错误发生
74. 数组在做函数实参的时候会转变为什么类型?
答:数组在做实参时会变成指针类型。
75. 系统会自动打开和关闭的3个标准的文件是?
(1) 标准输入—-键盘—stdin
(2) 标准输出—-显示器—stdout
(3) 标准出错输出—-显示器—stderr
76. .在Win32下 char, int, float, double各占多少位?
(1) Char 占用8位
(2) Int 占用32位
(3) Float 占用32位
(4) Double 占用64位
77. strcpy()和memcpy()的区别?
答:strcpy()和memcpy()都可以用来拷贝字符串,strcpy()拷贝以’