前天去通宵了,昨天休息一天调整一哈,嘻嘻嘻。
1.64位系统下,*p=NULL和*p=new char[100], sizeof(p)各为多少?
答:在64位下int为8个字节,指针也为8个字节。
2.
若有定义语句:char s[3][10],(*k)[3],*p;则以下赋值语句错误的是()
1 2 3 4 |
|
答:
p 是指向 char 的指针
k 是指向 char数组的指针,数组大小为3
s 是指向 char数组的指针,数组大小为10
k=s 错误是因为,k和s指向的数组大小不同。
k+1 地址移动3个 char的大小
s+1 地址移动10 个char的大小
如果将s 的定义改成 char s[3][3],那么 k=s 就正确了
或者将k 的定义改成 char (*k)[10],那么 k=s 也正确
所以124均错误。
3.
以下描述中,正确的是()。
A:预处理是指完成宏替换和文件包含中指定的文件的调用
B:预处理指令只能位于 C 源文件的开始
C:C源程序中凡是行首以#标识的控制行都是预处理指令
D:预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备
A: 预处理可以包含1.宏定义指令;2.条件编译指令;3.头文件包含指令;4.编译程序可以识别的特殊符号;
B: 条件编译指令#ifdef,#ifndef这两组不一定要位于开始。
D: 预编译是对源文件部分内容(宏定义,条件指令,特殊符号)的替换.
4.在所有类说明中内部定义的成员函数都是内联函数
5.父类的析构函数是非虚的,但是子类的析构函数是虚的,delete子类对象指针会调用父类的析构函数
6.C++函数模板 实例化和具体化 请跳转https://blog.youkuaiyun.com/qq_30835655/article/details/76850894?utm_source=copy