static全局变量与普通的全局变量有什么区别? 静态全局变量和全局变量有什么区别

Static\u5168\u5c40\u53d8\u91cf\u4e0e\u666e\u901a\u7684\u5168\u5c40\u53d8\u91cf\u6709\u4ec0\u4e48\u533a\u522b

\u5168\u5c40\u53d8\u91cf(\u5916\u90e8\u53d8\u91cf)\u7684\u8bf4\u660e\u4e4b\u524d\u518d\u51a0\u4ee5static \u5c31\u6784\u6210\u4e86\u9759\u6001\u7684\u5168\u5c40\u53d8\u91cf\u3002\u5168\u5c40\u53d8\u91cf\u672c\u8eab\u5c31\u662f\u9759\u6001\u5b58\u50a8\u65b9\u5f0f\uff0c \u9759\u6001\u5168\u5c40\u53d8\u91cf\u5f53\u7136\u4e5f\u662f\u9759\u6001\u5b58\u50a8\u65b9\u5f0f\u3002\u8fd9\u4e24\u8005\u5728\u5b58\u50a8\u65b9\u5f0f\u4e0a\u5e76\u65e0\u4e0d\u540c\u3002\u8fd9\u4e24\u8005\u7684\u533a\u522b\u867d\u5728\u4e8e\u975e\u9759\u6001\u5168\u5c40\u53d8\u91cf\u7684\u4f5c\u7528\u57df\u662f\u6574\u4e2a\u6e90\u7a0b\u5e8f\uff0c \u5f53\u4e00\u4e2a\u6e90\u7a0b\u5e8f\u7531\u591a\u4e2a\u6e90\u6587\u4ef6\u7ec4\u6210\u65f6\uff0c\u975e\u9759\u6001\u7684\u5168\u5c40\u53d8\u91cf\u5728\u5404\u4e2a\u6e90\u6587\u4ef6\u4e2d\u90fd\u662f\u6709\u6548\u7684\u3002 \u800c\u9759\u6001\u5168\u5c40\u53d8\u91cf\u5219\u9650\u5236\u4e86\u5176\u4f5c\u7528\u57df\uff0c \u5373\u53ea\u5728\u5b9a\u4e49\u8be5\u53d8\u91cf\u7684\u6e90\u6587\u4ef6\u5185\u6709\u6548\uff0c \u5728\u540c\u4e00\u6e90\u7a0b\u5e8f\u7684\u5176\u5b83\u6e90\u6587\u4ef6\u4e2d\u4e0d\u80fd\u4f7f\u7528\u5b83\u3002\u7531\u4e8e\u9759\u6001\u5168\u5c40\u53d8\u91cf\u7684\u4f5c\u7528\u57df\u5c40\u9650\u4e8e\u4e00\u4e2a\u6e90\u6587\u4ef6\u5185\uff0c\u53ea\u80fd\u4e3a\u8be5\u6e90\u6587\u4ef6\u5185\u7684\u51fd\u6570\u516c\u7528\uff0c \u56e0\u6b64\u53ef\u4ee5\u907f\u514d\u5728\u5176\u5b83\u6e90\u6587\u4ef6\u4e2d\u5f15\u8d77\u9519\u8bef\u3002

static\u5168\u5c40\u53d8\u91cf\u4e0e\u666e\u901a\u7684\u5168\u5c40\u53d8\u91cf\u6709\u4ec0\u4e48\u533a\u522b\uff1astatic\u5168\u5c40\u53d8\u91cf\u53ea\u521d\u4f7f\u5316\u4e00\u6b21\uff0c\u9632\u6b62\u5728\u5176\u4ed6\u6587\u4ef6\u5355\u5143\u4e2d\u88ab\u5f15\u7528;
static\u5c40\u90e8\u53d8\u91cf\u548c\u666e\u901a\u5c40\u90e8\u53d8\u91cf\u6709\u4ec0\u4e48\u533a\u522b\uff1astatic\u5c40\u90e8\u53d8\u91cf\u53ea\u88ab\u521d\u59cb\u5316\u4e00\u6b21\uff0c\u4e0b\u4e00\u6b21\u4f9d\u636e\u4e0a\u4e00\u6b21\u7ed3\u679c\u503c\uff1b
static\u51fd\u6570\u4e0e\u666e\u901a\u51fd\u6570\u6709\u4ec0\u4e48\u533a\u522b\uff1astatic\u51fd\u6570\u5728\u5185\u5b58\u4e2d\u53ea\u6709\u4e00\u4efd\uff0c\u666e\u901a\u51fd\u6570\u5728\u6bcf\u4e2a\u88ab\u8c03\u7528\u4e2d\u7ef4\u6301\u4e00\u4efd\u62f7\u8d1d\u3002

\u5168\u5c40\u53d8\u91cf\u662f\u4e0d\u663e\u5f0f\u7528static\u4fee\u9970\u7684\u5168\u5c40\u53d8\u91cf\uff0c\u4f46\u5168\u5c40\u53d8\u91cf\u9ed8\u8ba4\u662f\u52a8\u6001\u7684\uff0c\u4f5c\u7528\u57df\u662f\u6574\u4e2a\u5de5\u7a0b\uff0c\u5728\u4e00\u4e2a\u6587\u4ef6\u5185\u5b9a\u4e49\u7684\u5168\u5c40\u53d8\u91cf\uff0c\u5728\u53e6\u4e00\u4e2a\u6587\u4ef6\u4e2d\uff0c\u901a\u8fc7extern \u5168\u5c40\u53d8\u91cf\u540d\u7684\u58f0\u660e\uff0c\u5c31\u53ef\u4ee5\u4f7f\u7528\u5168\u5c40\u53d8\u91cf\u3002\u5168\u5c40\u9759\u6001\u53d8\u91cf\u662f\u663e\u5f0f\u7528static\u4fee\u9970\u7684\u5168\u5c40\u53d8\u91cf\uff0c\u4f5c\u7528\u57df\u662f\u58f0\u660e\u6b64\u53d8\u91cf\u6240\u5728\u7684\u6587\u4ef6\uff0c\u5176\u4ed6\u7684\u6587\u4ef6\u5373\u4f7f\u7528extern\u58f0\u660e\u4e5f\u4e0d\u80fd\u4f7f\u7528\u3002

\u62d3\u5c55\u8d44\u6599\u5168\u5c40\u53d8\u91cf\u4e5f\u79f0\u4e3a\u5916\u90e8\u53d8\u91cf\uff0c\u5b83\u662f\u5728 \u51fd\u6570\u5916\u90e8\u5b9a\u4e49\u7684\u53d8\u91cf\u3002 \u5b83\u4e0d\u5c5e\u4e8e\u54ea\u4e00\u4e2a \u51fd\u6570\uff0c\u5b83\u5c5e\u4e8e\u4e00\u4e2a\u6e90\u7a0b\u5e8f\u6587\u4ef6\u3002\u5176\u4f5c\u7528\u57df\u662f\u4ece\u5b9a\u4e49\u8be5\u53d8\u91cf\u7684\u4f4d\u7f6e\u5f00\u59cb\u81f3\u6e90\u6587\u4ef6\u7ed3\u675f\u3002
\u5168\u5c40\u53d8\u91cf\u662f\u5728\u6240\u6709\u51fd\u6570\u4f53\u7684\u5916\u90e8\u5b9a\u4e49\u7684\uff0c\u7a0b\u5e8f\u7684\u6240\u5728\u90e8\u5206\uff08\u751a\u81f3\u5176\u5b83\u6587\u4ef6\u4e2d\u7684\u4ee3\u7801\uff09\u90fd\u53ef\u4ee5\u4f7f\u7528\u3002\u5168\u5c40\u53d8\u91cf\u4e0d\u53d7\u4f5c\u7528\u57df\u7684\u5f71\u54cd\uff08\u4e5f\u5c31\u662f\u8bf4\uff0c\u5168\u5c40\u53d8\u91cf\u7684\u751f\u547d\u671f\u4e00\u76f4\u5230\u7a0b\u5e8f\u7684\u7ed3\u675f\uff09\u3002\u5982\u679c\u5728\u4e00\u4e2a\u6587\u4ef6\u4e2d\u4f7f\u7528 extern\u5173\u952e\u5b57\u6765\u58f0\u660e\u53e6\u4e00\u4e2a\u6587\u4ef6\u4e2d\u5b58\u5728\u7684\u5168\u5c40\u53d8\u91cf\uff0c\u90a3\u4e48\u8fd9\u4e2a\u6587\u4ef6\u53ef\u4ee5\u4f7f\u7528\u8fd9\u4e2a\u6570\u636e\u3002
\u5728\u5168\u5c40\u53d8\u91cf\u524d\u52a0\u4e00\u4e2a static\uff0c\u4f7f\u8be5\u53d8\u91cf\u53ea\u5728\u8fd9\u4e2a\u6e90\u6587\u4ef6\u4e2d\u53ef\u7528\uff0c\u79f0\u4e4b\u4e3a\u5168\u5c40\u9759\u6001\u53d8\u91cf\uff0c\u5168\u5c40\u9759\u6001\u53d8\u91cf\u5c31\u662f\u9759\u6001\u5168\u5c40\u53d8\u91cf\u3002
\u5728\u591a\u6587\u4ef6\u7ec4\u6210\u7684\u7a0b\u5e8f\u91cc\uff0c\u5168\u5c40\u53d8\u91cf\u4e0e\u5168\u5c40\u9759\u6001\u53d8\u91cf\u662f\u4e0d\u540c\u7684\u3002\u5728\u67d0\u4e00\u5c42\u6b21\u58f0\u660e\u7684\u53d8\u91cf\u7684\u4f5c\u7528\u57df\u5c31\u7ec8\u6b62\u4e8e\u8be5\u53d8\u91cf\u6240\u5728\u5c42\u6b21\u7684\u672b\u5c3e\u3002\u552f\u4e00\u7684\u533a\u522b\u662f\u5168\u5c40\u9759\u6001\u53d8\u91cf\u4f7f\u5f97\u8be5\u53d8\u91cf\u6210\u4e3a\u5b9a\u4e49\u8be5\u53d8\u91cf\u7684\u6e90\u6587\u4ef6\u6240\u72ec\u4eab\u3002\u5982\u679c\u5728\u4e00\u4e2a\u6587\u4ef6\u4e2d\u4f7f\u7528 extern\u5173\u952e\u5b57\u6765\u58f0\u660e\u53e6\u4e00\u4e2a\u6587\u4ef6\u4e2d\u5b58\u5728\u7684\u9759\u6001\u5168\u5c40\u53d8\u91cf\uff0c\u8fd9\u4e2a\u6587\u4ef6\u4e5f\u4e0d\u80fd\u591f\u4f7f\u7528\u8fd9\u4e2a\u6570\u636e\u3002

在C语言中,关键字static有三个明显的作用:

1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中只会初始化一次。

2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。

3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。

通俗点讲:
局部变量若加上static就表示该变量值在函数运行结束后是下一次函数运行时的初始值。
函数包括全局变量若加上static表示其作用范围只在本模块/本文件内可用。

有static的变量、函数,只能被本文件访问到,别的文件加extern也白搭。

在C语言中,关键字static有三个明显的作用:

1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中只会初始化一次。

2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。

3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。
在C语言中,关键字static有三个明显的作用:

1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中只会初始化一次。

2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。

3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。

  • 宓屽叆寮忛潰璇曞父瑙侀棶棰
    绛旓細鍥.static鍏ㄥ眬鍙橀噺涓庢櫘閫氱殑鍏ㄥ眬鍙橀噺鏈変粈涔堝尯鍒紵static鍑芥暟涓庢櫘閫氬嚱鏁版湁浠涔堝尯鍒紵绛旓細鍏ㄥ眬鍙橀噺(澶栭儴鍙橀噺)鐨勮鏄庝箣鍓嶅啀鍐犱互static 灏辨瀯鎴愪簡闈欐佺殑鍏ㄥ眬鍙橀噺銆傚叏灞鍙橀噺鏈韩灏辨槸闈欐佸瓨鍌ㄦ柟寮忥紝闈欐佸叏灞鍙橀噺褰撶劧涔熸槸闈欐佸瓨鍌ㄦ柟寮忋傝繖涓よ呭湪瀛樺偍鏂瑰紡涓婂苟鏃犱笉鍚屻傝繖涓よ呯殑鍖哄埆铏藉湪浜庨潪闈欐佸叏灞鍙橀噺鐨勪綔鐢ㄥ煙鏄鏁翠釜婧...
  • 杩欎釜绋嬪簭鐨勮繍琛岀粨鏋滄槸?杩樻湁static int闈欐佸畾涔鍙橀噺鍜鐩存帴int鏈変粈涔堝尯鍒...
    绛旓細1 2 3 4 5 6 7 8 9 10 static鍏ㄥ眬鍙橀噺涓庢櫘閫氱殑鍏ㄥ眬鍙橀噺鏈変粈涔堝尯鍒細static鍏ㄥ眬鍙橀噺鍙垵浣垮寲涓娆★紝闃叉鍦ㄥ叾浠栨枃浠跺崟鍏冧腑琚紩鐢;static灞閮ㄥ彉閲忓拰鏅氬眬閮ㄥ彉閲忔湁浠涔堝尯鍒細static灞閮ㄥ彉閲忓彧琚垵濮嬪寲涓娆★紝涓嬩竴娆′緷鎹笂涓娆$粨鏋滃硷紱static鍑芥暟涓庢櫘閫氬嚱鏁版湁浠涔堝尯鍒細static鍑芥暟鍦...
  • c涓彲浠ュ0鏄static鍙橀噺鍚?
    绛旓細灏辫涓婇潰杩欎釜鍑芥暟锛屽鏋滀綘鐨勭涓鍙ュ啓鎴恠tatic int sum;閭d箞浣犵涓娆¤皟鐢╢un(3);鍑芥暟杩斿洖3锛岀浜屾鍐嶈皟鐢╢un(5);鍑芥暟杩斿洖鍊兼槸8,鍥犱负绗竴娆¤皟鐢ㄤ箣鍚庣殑sum=3鐨勫间笉浼氭秷澶便傚彟涓绉嶆槸闈欐佸叏灞鍙橀噺銆傚洜涓烘槸鍏ㄥ眬鍙橀噺锛屼笉瀛樺湪閫鍑哄嚱鏁版秷涓嶆秷澶辩殑闂銆傛墍浠闈欐佸叏灞鍙橀噺鍜屾櫘閫鍏ㄥ眬鍙橀噺鐨勫尯鍒槸锛氭櫘閫氬叏灞鍙橀噺...
  • c璇█static(闈欐佸彉閲銆侀潤鎬佸嚱鏁般闈欐佸叏灞鍙橀噺)
    绛旓細鍦–璇█涓紝static鏄竴涓潪甯搁噸瑕佺殑鍏抽敭瀛楋紝瀹冨彲浠ョ敤浜庡畾涔闈欐佸彉閲銆侀潤鎬佸嚱鏁颁互鍙婇潤鎬佸叏灞鍙橀噺銆傞潤鎬佸彉閲忋侀潤鎬佸嚱鏁板拰闈欐佸叏灞鍙橀噺鐨浣滅敤鍩熷拰鐢熷懡鍛ㄦ湡涓庢櫘閫鍙橀噺銆佸嚱鏁板拰鍏ㄥ眬鍙橀噺鏈夋墍涓嶅悓锛屼娇鐢ㄥ畠浠彲浠ュ府鍔╂垜浠洿濂藉湴绠$悊绋嬪簭鐨勭姸鎬佸拰鏁版嵁銆傞潤鎬佸彉閲 闈欐佸彉閲忔槸鎸囧湪鍑芥暟鍐呴儴鎴栬呭潡鍐呴儴瀹氫箟鐨勫彉閲忥紝浣嗘槸瀹冪殑...
  • static灞閮鍙橀噺鍜屽叏灞鍙橀噺鐨鍖哄埆
    绛旓細浠庝互涓婂垎鏋愬彲浠ョ湅鍑猴紝 鎶婂眬閮ㄥ彉閲忔敼鍙樹负闈欐佸彉閲鍚庢槸鏀瑰彉浜嗗畠鐨勫瓨鍌ㄦ柟寮忓嵆鏀瑰彉浜嗗畠鐨 鐢熷瓨鏈燂紙闈欐佸眬閮ㄥ彉閲忓湪绋嬪簭杩愯缁撴潫閲婃斁绌洪棿锛岃鏅氶潤鎬灞閮ㄥ彉閲忓湪鍑芥暟閫鍑烘椂閲婃斁绌洪棿锛夈 鎶鍏ㄥ眬鍙橀噺鏀瑰彉涓洪潤鎬佸彉閲忓悗鏄敼鍙樹簡瀹冪殑浣滅敤鍩燂紝 闄愬埗浜嗗畠鐨勪娇鐢ㄨ寖鍥淬 static鍑芥暟涓庢櫘閫鍑芥暟浣滅敤鍩熶笉鍚屻備粎鍦ㄦ湰鏂囦欢銆傚彧鍦...
  • C璇█涓static鏄仛浠涔堢敤鐨?
    绛旓細鎴愪负闈欐佸叏灞鍙橀噺涓闈欐佸嚱鏁般俿tatic淇グ鍏ㄥ眬鍙橀噺\鍑芥暟 涓 鏅鍏ㄥ眬鍙橀噺\鏅氬嚱鏁扮浉姣旓紝瀹冪殑浼樺娍鍦ㄤ簬锛氣憼瀛樺偍绫汇佺敓鍛藉懆鏈熴佷綔鐢ㄥ煙閮戒竴鏍凤紱鈶″樊鍒湪浜巗tatic淇グ鍏ㄥ眬鍙橀噺\鍑芥暟杩炴帴灞炴ф槸鍐呰繛鎺ワ紝鏅氬叏灞鍙橀噺\鏅氬嚱鏁版槸澶栭摼鎺ワ紱鈶㈠氨鏄static淇グ鍏ㄥ眬鍙橀噺\鍑芥暟涓嶈兘璺ㄦ枃浠惰闂皟鐢ㄣ
  • 鍒濆C++ 鏈夊嚑涓湳璇笉鐢氫簡浜
    绛旓細涓鍏冭繍绠楃鏄彧鏈変竴涓搷浣滄暟鐨勮繍绠楃,姣斿"鍙栧弽"杩愮畻,鍙栧湴鍧杩愮畻,鍙傚姞杩愮畻鐨勬暟鎹彧鏈変竴涓,鍍忓姞娉曡繍绠楀氨涓嶆槸涓鍏冭繍绠,鍥犱负鍙傚姞杩愮畻鐨勬暟鎹湁涓や釜,涓や釜鏁版墠鑳界浉鍔,涓涓暟鏄笉鑳界浉鍔犵殑,缁撳悎椤哄簭鏄粠宸﹀線鍙,鎰忔濇槸宸﹁竟鐨勮繍绠楃鍏堣绠,鐒跺悗鍐嶇畻鍙宠竟鐨,static鍏ㄥ眬鍙橀噺 涓 鏅氱殑鍏ㄥ眬鍙橀噺鍙湁浣滅敤鍩熺殑鍖哄埆,...
  • 鍑芥暟閲岀殑鍜鍑芥暟澶栫殑static鍙橀噺鏈変粈涔堝尯鍒
    绛旓細棣栧厛璇翠竴涓嬩粈涔堟槸闈欐佸彉閲锛堝父閲忎篃鏄竴鏍风殑閬撶悊锛夛紝浣犲彲浠ヨ繖涔堢悊瑙o紝涓嶇鍝0鏄庣殑闈欐佸彉閲忥紝鍏跺疄閮藉彲浠ュ綋浣滃叏灞鍙橀噺锛屼絾鍜屾櫘閫氱殑鍏ㄥ眬鍙橀噺涓嶅悓鐨勬槸璇ラ潤鎬佸彉閲忓彧鑳藉湪鍏跺0鏄庣殑浣滅敤鍩熶腑浣跨敤锛屽嚭浜嗚繖涓綔鐢ㄥ煙灏变笉鑳界敤浜嗐傞偅涔堜綘鐨勯棶棰樹篃灏卞嚭鏉ヤ簡锛屽湪鍑芥暟鍐呭0鏄庣殑闈欐佸彉閲忓叾瀹炲氨鏄竴涓叏灞鍙橀噺锛屽彧涓嶈繃瀹冨彧鑳藉湪...
  • C++ 鍏ㄥ眬鍙橀噺鍜屽叏灞闈欐鍙橀噺鏈変粈涔堝尯鍒憿
    绛旓細C++ 鍏ㄥ眬鍙橀噺鍜屽叏灞闈欐鍙橀噺鐨勬牴鏈尯鍒繕鏄綔鐢ㄥ煙鐨勫尯鍒1銆佸叏灞鍙橀噺鏄笉鏄剧ず鐢static淇グ鐨勫叏灞鍙橀噺锛屼絾鍏ㄥ眬鍙橀噺榛樿鏄潤鎬佺殑锛屼綔鐢ㄥ煙鏄鏁翠釜宸ョ▼锛屽湪涓涓枃浠跺唴瀹氫箟鐨勫叏灞鍙橀噺锛屽湪鍙︿竴涓枃浠朵腑锛岄氳繃extern 鍏ㄥ眬鍙橀噺鍚嶇殑澹版槑锛屽氨鍙互浣跨敤鍏ㄥ眬鍙橀噺锛2銆佸叏灞闈欐佸彉閲忔槸鏄剧ず鐢╯tatic淇グ鐨勫叏灞鍙橀噺锛屼綔鐢ㄥ煙鏄...
  • 闈欐佸彉閲忓拰鍏ㄥ眬鍙橀噺鏈変粈涔堝尯鍒?
    绛旓細杩欎袱鑰呭湪瀛樺偍鏂瑰紡涓婂苟鏃犱笉鍚屻傝繖涓よ呯殑鍖哄埆铏藉湪浜庨潪闈欐佸叏灞鍙橀噺鐨浣滅敤鍩熸槸鏁翠釜婧愮▼搴忥紝褰撲竴涓簮绋嬪簭鐢卞涓簮鏂囦欢缁勬垚鏃讹紝闈闈欐佺殑鍏ㄥ眬鍙橀噺鍦ㄥ悇涓簮鏂囦欢涓兘鏄湁鏁堢殑銆傝岄潤鎬佸叏灞鍙橀噺鍒欓檺鍒朵簡鍏朵綔鐢ㄥ煙锛屽嵆鍙湪瀹氫箟璇ュ彉閲忕殑婧愭枃浠跺唴鏈夋晥锛屽湪鍚屼竴婧愮▼搴忕殑鍏跺畠婧愭枃浠朵腑涓嶈兘浣跨敤瀹冦傜敱浜庨潤鎬佸叏灞鍙橀噺鐨勪綔鐢...
  • 扩展阅读:全局变量static的作用 ... static静态变量的理解 ... 静态变量static会变吗 ... 静态static有啥用 ... static修饰局部变量 ... 静态关键字static的作用 ... static全局变量初始化 ... c++static用法 ... static全局变量与普通变量的区别 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网