一、#include “filename.h”和#include <filename.h>的区别 |%9~W^b
$o^}<)DW
#include “filename.h”是指编译器将从当前工作目录上开始查找此文件 >0$5H]1u
>H! 2Wflm
#include <filename.h>是指编译器将从标准库目录中开始查找此文件 bsVOO9.4-
pYQs|5d
sIM`Q%
二、头文件的作用 pc>R|~J{2
;^]F~x}
加强安全检测 r73Xh"SL
t?Znil|o
通过头文件可能方便地调用库功能,而不必关心其实现方式 RmCR"~
*()#*0
]t<%>Z$
三、* , &修饰符的位置 / nRaxzf'
'?4[w]0J<
对于*和&修饰符,为了避免误解,最好将修饰符紧靠变量名 8i"fhN3?Y
Rh^$0Q*2
O^hV<+CX
四、if语句 ]e9kf$'
dY^~^<{Lj
不要将布尔变量与任何值进行比较,那会很容易出错的。 v4zARE9#
wVB8PO8
整形变量必须要有类型相同的值进行比较 iBt5aUt
Z
m>69gl
浮点变量最好少比点,就算要比也要有值进行限制 1owoh,V6
6ZJQ '9f
指针变量要和NULL进行比较,不要和布尔型和整形比较 &bNj/n/
#/6X44
*u
<Do89
五、const和#define的比较 >~:]+q
6w#v,RDEu
const有数据类型,#define没有数据类型 e V#H"fM
c{0?gt.
个别编译器中const可以进行调试,#define不可以进行调试 Q=E6ZxH5;
fC[gu$f][
在类中定义常量有两种方式 vJ s/ett
7#`:m|$
1、 在类在声明常量,但不赋值,在构造函数初始化表中进行赋值; "~6BC
k5/}S@F8
2、 用枚举代替const常量。 t!$/r]XM h
:yeTzIz]
?T&D@Ohsx
六、C++函数中值的传递方式 shRvwE[
BH1To&ol
有三种方式:值传递(Pass by value)、指针传递(Pass by pointer)、引用传递(Pass by reference) Kk#@8h>
'aJ?Syn
void fun(char c) //pass by value ?T"crX
]
D(3
void fun(char *str) //pass by pointer uB?YJf .T@
Ra5cfkH;
void fun(char &str) //pass by reference cW2:D$Pe
$}829<gh7
如果输入参数是以值传递的话,最好使用引用传递代替,因为引用传递省去了临时对象的构造和析构 E*$:~w
spf}{o
函数的类型不能省略,就算没有也要加个void ,o`qB81
<5
+?&i
{>qCZ#E5WO
七、函数体中的指针或引用常量不能被返回 i.]}ooI
&N#)(rQ1
Char *func(void) !
^W|;bq
4#T'Fy].
{ aVlHY E
?!ig/ufZ
char str[]=”Hello Word”; ,DjZDw
u'C4d6\wS
//这个是不能被返回的,因为str是个指定变量,不是一般的值,函数结束后会被注销掉 .T7ciD
Kj7Osqu2bE
return str; hH\(>4l
`@90b4u
} oj/tim
%2{E'^#)p-
函数体内的指针变量并不会随着函数的消亡而自动释放 BBDOjhik
hf'3yEm
2+'&||h
八、一个内存拷贝函数的实现体 z"-Urd^O
<