一、#include “filename.h”和#include <filename.h>的区别 M(S:&GOU
[ua{qJ9
#include “filename.h”是指编译器将从当前工作目录上开始查找此文件 fN>o465I6
j4Cad
#include <filename.h>是指编译器将从标准库目录中开始查找此文件 ?!-2G
$3%EKi
I/MYS5}
二、头文件的作用 K$\]\qG6
VHB5
加强安全检测 *B`wQhB%
[3rvRJ.
通过头文件可能方便地调用库功能,而不必关心其实现方式 dd>stp
:\48=>
!K1[o'o#
三、* , &修饰符的位置 #G^?4Za
1<
;<?
对于*和&修饰符,为了避免误解,最好将修饰符紧靠变量名 [HK[{M=v=
#Gs] u
(6fh[eK86
四、if语句 xq.,7#3
l>S~)FNwXJ
不要将布尔变量与任何值进行比较,那会很容易出错的。 ;Zc(qA
$q{-)=-BXQ
整形变量必须要有类型相同的值进行比较 kL,AY-Iu{@
SUfl`\O
浮点变量最好少比点,就算要比也要有值进行限制 +kQ$X{+;8
Ah28D!Gor
指针变量要和NULL进行比较,不要和布尔型和整形比较 ,`MUd0 n
xO6)lVd
pl V]hu27K
五、const和#define的比较 +=^10D
a4L8MgF&$-
const有数据类型,#define没有数据类型 $v+Q~\'
L*1C2EL/q
个别编译器中const可以进行调试,#define不可以进行调试 `(EY/EsY
=\?KC)F*e
在类中定义常量有两种方式 BD9W-mF
SV}I+O_w
1、 在类在声明常量,但不赋值,在构造函数初始化表中进行赋值; W :jC2,s!m
WeE>4>^
2、 用枚举代替const常量。 ,Rk;*MEMJ
">lu8F
;2-,Xzz8
六、C++函数中值的传递方式 Q'&oSPXSDd
p0UR5A>p
有三种方式:值传递(Pass by value)、指针传递(Pass by pointer)、引用传递(Pass by reference) Edc< 8-
J O`S
void fun(char c) //pass by value Lt.a@\J'_
jX!,xS%(
void fun(char *str) //pass by pointer ,D3?N2mB
mHUQtGAVQ
void fun(char &str) //pass by reference Pp6(7j
%<DXM`Y
如果输入参数是以值传递的话,最好使用引用传递代替,因为引用传递省去了临时对象的构造和析构 vu;pILN
-S
OP8G
函数的类型不能省略,就算没有也要加个void P|_>M SO1'
!&Vp5]c
,[%KSyH
七、函数体中的指针或引用常量不能被返回 |#Bz&T
G@ XKE17
Char *func(void) _K3?0<=4
NSUw7hnWvz
{ k/?5Fs!#
znzh$9tH
char str[]=”Hello Word”;
@S yGj#
mTT1,|
//这个是不能被返回的,因为str是个指定变量,不是一般的值,函数结束后会被注销掉 L\XnTL{
m@R!o
return str; )Y+n4UL3NK
X<m#:0iD
} [*Nuw_l
VChNDHiH
函数体内的指针变量并不会随着函数的消亡而自动释放 )"2)r{7:
vX;WxA<