林锐《高质量C++编程》试题简单笔记
一、基本数据类型与“零值”比较
1. 判断布尔值
if (flag) or if (!flag)
2. 判断float类型与零值比较
const flag EPSINON = 0.000001;if( (x>=-EPSION) && (x<=EPSINON))
3. 判断指针与“零值”比较
if (p == NULL ) or if (p != NULL)
二、简答题
1. 头文件中的ifndef/define/endif 干什么用?
答: 防止该头文件被重复使用
2. #include<filename.h> 和 #include "filename.h" 有什么区别
答: 对于#include<filename.h>, 编译器从标准库路径开始搜索 filename.h
对于#include"filename.h", 编译器从源文件的工作路径开始搜索 filename.h, 如果搜索不到,再到标准库中搜索 filename.h。
3. const 有什么用途?
1)可以定义常量2)const 可以修饰函数的参数,返回值等,提高了程序的健壮性
4. 在C++ 程序中,调用被C编译器编译后的函数,为什么要用 extern "C"?
答: 函数被C++编译后,在库中的名字与C语言不同,C++提供了C连接交换指定符号 extern "C" 来解决名字匹配问题。三、编写 strcpy 函数
char* strcpy(char* strDest, const char* strSrc)
{
assert((strDest!=NULL) && (strSrc!= NULL) );
char *address = strDest;
while( (*strDest++ = *strSrc++) != ‘\0‘);
return address;
}
简单小结: 林锐博士的这份试题,我只拿了20分,惭愧!确实像作者所说,应该好好修炼下“内功”。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。