以下是引用flypanda999在2013-2-14 14:33:10的发言:
嗯嗯,我就是没法理解例题中说a是静态存储类变量,第一次调用结束后不释放,也不能被再次定义,而最上面书后习题中那段代码int a;是外部存储类变量,程序不结束不会释放,而为什么又可以被再次定义为静态存储类变量呢
嗯嗯,我就是没法理解例题中说a是静态存储类变量,第一次调用结束后不释放,也不能被再次定义,而最上面书后习题中那段代码int a;是外部存储类变量,程序不结束不会释放,而为什么又可以被再次定义为静态存储类变量呢
这里好像不是你想的这个样子 而是 变量都有一个属性 而且是有且只有一个属性 要么是全局 要么是静态 要么是局部 而且有规定 有全局有局部默认用的是局部 也就是 一般来说默认用自己函数里面的而不是全局的 当然C++里也提供了访问全局的方式
代码说话
程序代码:
#include <iostream> using std::cout; using std::endl; int a = 100; void func(void) { static int a = 2; cout << "这里我打出了a=" << a << endl; cout << "最后打出的是啥?" << endl; } int main(void) { int a = 1; cout << "这里我打出了局部变量 因为默认情况下是用局部变量 a=" << a << endl; cout << "这里我打出了全局变量 a=" << ::a << endl; func(); return 0; }
这些东西是基础知识 记住就好了
这里我打出了局部变量 因为默认情况下是用局部变量 a=1
这里我打出了全局变量 a=100
这里我打出了a=2
最后打出的是啥?