一、#include “filename.h”和#include <filename.h>的区别 >"+bL6#
]}dAm S/
#include “filename.h”是指编译器将从当前工作目录上开始查找此文件 NeY,Of|
woR }=\K
#include <filename.h>是指编译器将从标准库目录中开始查找此文件 kM/;R)3t4/
;923^*\:F{
>zB0+l
二、头文件的作用 b
`.h+=3
JV9Ft,xk
加强安全检测 '}
LAZQ"
!Ql&Ls
通过头文件可能方便地调用库功能,而不必关心其实现方式 )F4P-u
6B>H75S+H
QsH Fk5)
三、* , &修饰符的位置 JD$;6Jv3P
ziui
对于*和&修饰符,为了避免误解,最好将修饰符紧靠变量名 QOY M/1U
8&9'1X5)8_
w97B)Kn6
四、if语句 v"G) G)*z
d/`Q,Vl
不要将布尔变量与任何值进行比较,那会很容易出错的。 UI.>BZ6}
uSK<{UT~3
整形变量必须要有类型相同的值进行比较 $WK~|+"{>
3L(vZ2&
浮点变量最好少比点,就算要比也要有值进行限制 z8hAZ?r1`
G=%SMl>[
指针变量要和NULL进行比较,不要和布尔型和整形比较 mmrz:_
&c1zEgl
:u>9H{a
五、const和#define的比较 <',bqsg[
Lj03Mx.2S
const有数据类型,#define没有数据类型 tXnD>H YV
6,;7iA]
个别编译器中const可以进行调试,#define不可以进行调试 Fr ryZe=
h ?%]uFJC
在类中定义常量有两种方式 Qcr-|?5L
lVQy
{`Ns
1、 在类在声明常量,但不赋值,在构造函数初始化表中进行赋值; F%>`?NG+c
4I^8f||b_
2、 用枚举代替const常量。 I<ta2<h
AVbGJ+
ygquQhf5
六、C++函数中值的传递方式 kI>PaZ`i)
ThSB\
有三种方式:值传递(Pass by value)、指针传递(Pass by pointer)、引用传递(Pass by reference) (}LLk+
5Mq7l$]h$
void fun(char c) //pass by value Ykd< }KE>
=HkB>w)h
void fun(char *str) //pass by pointer <v=T31aS
X6Hd%}*mN
void fun(char &str) //pass by reference 1 ojy_
T.p:`}Ma
如果输入参数是以值传递的话,最好使用引用传递代替,因为引用传递省去了临时对象的构造和析构 <rpXhcR
\zPcnDB
函数的类型不能省略,就算没有也要加个void )~l`%+
@-QDp`QtI
,a/<t"
七、函数体中的指针或引用常量不能被返回 Cn>RUGoUsI
D#G(&<Q
Char *func(void) c/G]r|k
u$?t |Ll
{ R3=]Av46
9n#Em
char str[]=”Hello Word”; ![*7HE>},
Pe_FW8e#J
//这个是不能被返回的,因为str是个指定变量,不是一般的值,函数结束后会被注销掉 'u{DFMB-A
Fb{kql=
return str; v}AVIdR
J< U,~ra\
} Zr.6J*&