一、#include “filename.h”和#include <filename.h>的区别 -HutEbkjx
!B cd\] q
#include “filename.h”是指编译器将从当前工作目录上开始查找此文件 w
4-E@>%
G$kspN*"A
#include <filename.h>是指编译器将从标准库目录中开始查找此文件 2Z!%Q}Do
,1J+3ugp&
vN'Y);$
二、头文件的作用 ?0QoYA@.$
Z#0hh%E"|y
加强安全检测 Y??8P
BIovPvq;i
通过头文件可能方便地调用库功能,而不必关心其实现方式 mF7T=pl
WP{!|d&
Xk8+
三、* , &修饰符的位置 zX*+J"x
-b'93_ZTu:
对于*和&修饰符,为了避免误解,最好将修饰符紧靠变量名 qw={gZ
cyu)YxT
Z:7X=t=
四、if语句 YaI8hj@}
"N\>v#>C
不要将布尔变量与任何值进行比较,那会很容易出错的。 }A)>sQ
=iF}41a
整形变量必须要有类型相同的值进行比较 [+dOgyK
v,qK=]ty
浮点变量最好少比点,就算要比也要有值进行限制 DY<Br;
Huzw>
指针变量要和NULL进行比较,不要和布尔型和整形比较 Q%:#xG5AmE
Sg;c |u
S,A\%:Va
五、const和#define的比较 :j2G0vHIl(
zOO:`^ m
const有数据类型,#define没有数据类型 ]"? +R+
2@ 4^ 81
个别编译器中const可以进行调试,#define不可以进行调试 *tkbC2D
'oNY4.[
在类中定义常量有两种方式 c@iP^;D
^,F8 ha
1、 在类在声明常量,但不赋值,在构造函数初始化表中进行赋值; AWSe!\b
E{_$C!.
2、 用枚举代替const常量。 &aD]_+b
svki=GD_(.
a:nMW '!
六、C++函数中值的传递方式 3N%%69JN)
-OY[x|0
有三种方式:值传递(Pass by value)、指针传递(Pass by pointer)、引用传递(Pass by reference) 0NKo)HT
ma9VI5w
void fun(char c) //pass by value I |@'2z2
Ip_S8
;;
void fun(char *str) //pass by pointer GjF'03Z4
HivmKn`
void fun(char &str) //pass by reference KFxy,Z$-4
k\,01Y^
如果输入参数是以值传递的话,最好使用引用传递代替,因为引用传递省去了临时对象的构造和析构 [;O 6)W
Ji%6/zV
函数的类型不能省略,就算没有也要加个void 7I.7%m,g
M`{x*qR
p%Zx<=f-_
七、函数体中的指针或引用常量不能被返回 I[b@U<\
TK"!z(p
Char *func(void) K5(:UIWx
h|z{ (v
{ CYlZ<