1.用new与delete成对使用,new[]与delete[]成对使用,只new不delete会造成内存泄露,一般new出来后用meset(lp,0,sizeof lp)将申请的内存清空,如果不这样,可能发生问题,因为系统给配给你的内存不一定都是NULL的。
2.c++中的分号:
如果一条语句中只包含分号(;),那这条语句就是空语句。
典型应用是:for(;;)
{ } //这种用法就是无限循环。
2. 一般用{}括起来的部分就是语句块,语句块相当于一条逻辑语句,在它里面定义的变量出来后都是无效的。
{}后面也不需要分号来结束,因为里面的语句都已经有分号结束了,{}相当于一个逻辑块,即逻辑块的限定符。
3. 自定义类型时{}后面必须要多加一个分号, 这是因为怕你在后面接着写某些标识符,如果不加分号的话,编译器会认为你是不是要把那些标识符定义为该类型?加上分号后,编译器就知道后面的语句和本句无关了,可以按照新的规则处理。
例如class 定义后需要加分号,否则编译器会报错…… followed by …… is illegal (did you forget a ';'?)
class Sample{ private: ……
public: ……
};
4.volatile:volatile的作用是: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值.
5.bcb导出dll注意事项:
创建动态链接库时,如果想你创建的动态链接库并非只用于Borland开发工具,那么就需要遵循发下规则:
(1).在导出函数的返回值和参数中不要使用Borland特有的数据类型和结构体,如AnsiString之类,请使用C/C++标准的数据类型或使用 C/C++标准数据类型定义的结构体(特别不要使用String数据类型,BCB DLL向导生成的DLL工程文件中大篇幅的说明就是对此的说明,请自己查阅);
(2).请使用extern "C"命名约定,这样,生成的DLL中的导出函数,就不会使用C++的命名约定,而是使用的C命名约定,即导出函数不会名字分解,而是和你定义的函数相同;
(3).导出函数请使用WIN32 API的调用方式__stdcall(即WINAPI)或VC与BorlandC++的调用约定__cdecl,不要使用Borland特有的__fastcall调用约定,否则只有Borland开发工具才可以使用这些动态链接库;
6.转义字符
转义字符
|
意义
|
ASCII码值(十进制)
|
\a
|
响铃(BEL)
|
007
|
\b
|
退格(BS) ,将当前位置移到前一列
|
008
|
\f
|
换页(FF),将当前位置移到下页开头
|
012
|
\n
|
换行(LF) ,将当前位置移到下一行开头
|
010
|
\r
|
回车(CR) ,将当前位置移到本行开头
|
013
|
\t
|
水平制表(HT) (跳到下一个TAB位置)
|
009
|
\v
|
垂直制表(VT)
|
011
|
\\
|
代表一个反斜线字符''\'
|
092
|
\'
|
代表一个单引号(撇号)字符
|
039
|
\"
|
代表一个双引号字符
|
034
|
\0
|
空字符(NULL)
|
000
|
\ddd
|
1到3位八进制数所代表的任意字符
|
三位八进制
|
\xhh
|
1到2位十六进制所代表的任意字符
|
二位十六进制
|