一、#include “filename.h”和#include <filename.h>的区别 J0k!&d8
N68]r3/K
#include “filename.h”是指编译器将从当前工作目录上开始查找此文件 V1Ft3Msq
hy#nK:B
#include <filename.h>是指编译器将从标准库目录中开始查找此文件 MA9E??p3\
m~=VUhPd
B7qi|Fw
二、头文件的作用 1Bs t|
=@O&$&
加强安全检测 %Qj$@.*:
l-r$czY
通过头文件可能方便地调用库功能,而不必关心其实现方式 ,]JIp~=nsh
4#W$5_Ny
L}Sb0 o.
三、* , &修饰符的位置 IN6L2/Q
eI`%J3BxR
对于*和&修饰符,为了避免误解,最好将修饰符紧靠变量名 "MzBy)4Q
H;a) `R3
D
dwFKc&
四、if语句 ,b^jAzow
30w(uF
不要将布尔变量与任何值进行比较,那会很容易出错的。 8@;R2]Q
IV1O/lGp
整形变量必须要有类型相同的值进行比较 0;1O;JRw
g}6M+QNj
浮点变量最好少比点,就算要比也要有值进行限制 ,^1 #Uz8
N49{J~
指针变量要和NULL进行比较,不要和布尔型和整形比较 jEx8G3EL
' p!&&.%
4+>~Ui_#
五、const和#define的比较 ORX<ZOt1
o4a@{nt^,
const有数据类型,#define没有数据类型 !+Cc^{
bly `mp8#
个别编译器中const可以进行调试,#define不可以进行调试 3LQu+EsS
n|.eL8lX.<
在类中定义常量有两种方式 :Id8N~g
[KGj70|~
1、 在类在声明常量,但不赋值,在构造函数初始化表中进行赋值; ^Q0=Ggh
`:ZaT('h
2、 用枚举代替const常量。 mV}8s]29
_o?aO C
t#f-3zd9
六、C++函数中值的传递方式 =<(6yu_
`v(!IBP|
有三种方式:值传递(Pass by value)、指针传递(Pass by pointer)、引用传递(Pass by reference) :zIB3nT^
m bhh
void fun(char c) //pass by value |w~*p
N0
,3GB9
void fun(char *str) //pass by pointer oKkDG|IE
dJQwb
void fun(char &str) //pass by reference vfDX~_N
0"\js:-$
如果输入参数是以值传递的话,最好使用引用传递代替,因为引用传递省去了临时对象的构造和析构 yHf^6|$8
Ug#B( }/
函数的类型不能省略,就算没有也要加个void 6R3/"&P(/#
Y*jkUQ
NP\/9
8|1
七、函数体中的指针或引用常量不能被返回 4%yeEc;z
iqX%pR~Yo
Char *func(void) BUI#y `J
~t*_
{ _Nz?fJ:$@
y9i+EV
char str[]=”Hello Word”; X+\=dhn69
`}
'o2oZnG
//这个是不能被返回的,因为str是个指定变量,不是一般的值,函数结束后会被注销掉 %dd B$(
Xa'b@*o&
return str; &F0>V o
=`MQKh,
} m=iKu(2xRq
FgP{
函数体内的指针变量并不会随着函数的消亡而自动释放 5
r<cna
S}/ZHo
A$zC$9{0I
八、一个内存拷贝函数的实现体 XGnC8Be{4
R6GlQ G
void *memcpy(void *pvTo,const void *pvFrom,size_t size) bV)h\:oC
F&+_z&n