1. 程式人生 > >結構程序~全局變量

結構程序~全局變量

指針 得到 main函數 全局 全局變量 程序 相同 return 本地變量

/*全局變量
沒有做初始化的全局變量會得到0值
指針會得到NULL值
只能用編譯時刻已知的值來初始化全局變量
它們的初始化發生在main函數之前
*/
/*方一:
int gall=12;
int g2=gall; 不可以
方二:
const gall=12;
int g2=gall; 可以
方三:
int g2=gall;
const gall= 12; 不可以
*/
/*
#include<stdio.h>
int f(void);
int gall =12;

int main(int argc,char const *argv[])
{
printf("in gall=%d\n",gall);
f();
printf("agn gall=%d\n",gall);
return 0;
}

int f(void)
{
printf("in gall=%d\n",gall);
gall +=2;
printf("agn gall=%d\n",gall);
return gall;
}

in gall=12
in gall=12
agn gall=14
agn gall=14
*/

//被隱藏的全局變量
//如果函數內部存在與全局變量同名的變量,則全局變量被隱藏
//在更小的地方,可以命名與大局變量同名的變量,大局變量被隱藏

/* 靜態本地變量
靜態本地變量實際上是特殊的全局變量
它們位於相同的內存區域
靜態本地變量具有全局的生存期,函數內的局部作用域
*/

結構程序~全局變量