第一个箭头的地方不能理解为重新赋值吗,这个程序里面我把为什么我第二个箭头指的地方就可以从定义,而第一个的地方不可以呢
初始化就是第一次,难道你要很多第一次??
好吧!我有点邪恶了!
静态全局变量有以下特点:
1.该变量在全局数据区分配内存;
2.未经初始化的静态全局变量会被程序自动初始化为0
3.静态全局变量在声明它的整个文件都是可见的,而在文件之外是不可见的;
static声明个全局变量,所以在每个函数中调用都没问题,但是你在函数块外随便进行操作,恐怕编译器不能允许吧。
在函数外定义全局变量时,可以初始化,也可以不初始化。在函数用这个变量时初始化也可以。但是不能在函数外单独写语句,类似 j=2;
这是语法错误。所以第一个位置是语法错误。
在第二个位置可以有j=2; 除了定义变量等语句可以在函数外,其他普通语句必须在函数内。
比如:你不能把pritf("ok"); 放到函数外。
静态变量(static).静态变量之所以是因为静态,是因为他在整个程序生命周期的地址静止不变。也就是说在整个程序里面只保存有一份拷贝。static关键字允许它在不同的函数调用间保持它的值。如果一个静态变量被访问后值改变,它就会保持新的值。如果这变量再次被访问,它将会维持最新的值
静态变量只是地址不会变,只初始化一次,C的不是很清楚。初始化这个东西有些时候看怎么理解了,Java中指类加载的时候。