1. NUL用来结束一个ACSII字符串, NULL表示空指针
2. break语句跳出最近的那层循环语句或switch语句
3. static:
(1). 修饰局部变量
局部变量存放在栈,生命周期随语句块结束而结束。static对局部变量修饰后,作用域不变,但生命周期持续到整个程序结束,并存放在静态数据区。
用static修饰局部变量,只在初次运行时进行初始化,且只进行一次。
void Func()
{
static int a = 1;
a++;
cout<<a<<endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
//a = 2;
Func();
//2
Func(); //3
return 0;
}
(2). 修饰全局变量 & 函数
A文件中的全局变量(int a = 1)可以通过在B文件中(extern int a)的方式访问。
但static int a = 1之后无法访问,static将原本全局可见的a变量变为本源文件可见。
修饰函数的情况与全局变量一致。
(3). C++中的static
C++类中,某个函数用static修饰,表示该函数属于类不属于类的某个特定对象;某个变量用static修饰, 表示变量属于类不属于类的某个特定对象。
它的存储空间只有一个副本。
4. extern
extern表示此函数/变量是在别处定义的,且要在此引用。
与include的相比,extern可以加速编译过程。
C++中调用C库函数,需要用extern "C",来告诉链接器链接时用C函数规范来链接,因为C++与C编译完成后在目标代码中的命名规则不同,以此来解决名字匹配问题。
参考:http://developer.51cto.com/art/201104/256820.htm
原文:http://blog.csdn.net/pandawuwyj/article/details/24556471