1、sizeof和strlen()的区别
解答:sizeof是一个单目运算符,而strlen()是一个函数;在计算字符串的长度时,sizeof求出来的值是字符的总个数加1,而strlen()求出来的值就是字符的总个数。
2、#include<filename.h>和#include“filename.h”的区别
解答:对于#include<filename.h>,编译器从开发环境设置的路径开始搜索filename.h;对于#include“filename.h”,编译器从用户的工作路径开始搜索filename.h。
3、头文件中的“ifndef/define/endif”是干什么用的
解答:防止头文件被重复引用
4、不同变量与“零值”比较的if语句
解答:
int n; n与“零值”比较的if语句为:
if(n == 0); if(n != 0);
bool flag; flag与“零值”比较的if语句:
if(flag); if(!flag)
最好不要写成:
if(flag == TRUE); if(flag != TRUE); if(flag == 1);
float x; x与“零值”比较的if语句为:
//精度epsilon根据具体应用要求而定
const float epsilon = le-6;
if((x >= -epsilon) && (x<=epsilon))
注意:不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”的形式。
char *p p与“零值”比较的if语句为:
if(p == NULL); if(p != NULL)
下列写法错误:
if(p == 0); if(p != 0); if(p); if(!p);
5、中断函数可以有返回值吗
解答:不可以
6、const与#define的比较
解答:C语言中可以用const来定义常量,也可以用#define来定义常量。但是前者比后者具有更多的优点:
(1) const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行静态类型安全检查;而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误(边际效应);
(2) 有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。
文章评论(0条评论)
登录后参与讨论