C语言中的static变量能改名吗?

可以,static在C语言中是表示一个变量为静态变量的,而不是常量,也不是不可变的变量。所谓的静态变量有两种情况,一种是静态全局变量,一种是静态局部变量。
先说静态局部变量:通常情况下,在一个函数中定义一个变量,那么函数退出之后,这个变量就消失了,即使你第二次调用这个函数,里面的变量也会被重新赋初值。比如我们写一个函数:
int fun(int a)
{int sum;
sum=sum+a;
return sum;}
这样无论你是第几次调用fun这个函数,sum都会重新被赋初值,也就是函数的返回值一直会是a;而不会出现多次调用累加的情况。
但如果你在一个函数中,用static来声明变量,那么这个变量虽然在函数外部不可用,但退出函数时,这个变量是不会消失的,下一次再调用这个函数,里面的值仍然存在。就说上面这个函数,如果你的第一句写成static int sum;那么你第一次调用fun(3);函数返回3,第二次再调用fun(5);函数返回值是8,因为第一次调用之后的sum=3的值不会消失。

另一种是静态全局变量。因为是全局变量,不存在退出函数消不消失的问题。所以静态全局变量和普通全局变量的区别是:普通全局变量在其他源文件中可以通过extern全局变量名的声明,来使用该变量,而静态全局变量只能在变量所在的文件中使用,即使你在其他文件中使用extern声明也不可以使用,这样可以有效避免不同文件全局变量的冲突。

  • C璇█涓殑static鍙橀噺鑳鏀瑰悕鍚?
    绛旓細鍙互锛宻tatic鍦–璇█涓槸琛ㄧず涓涓彉閲忎负闈欐佸彉閲忕殑锛岃屼笉鏄父閲忥紝涔熶笉鏄笉鍙彉鐨勫彉閲忋傛墍璋撶殑闈欐佸彉閲忔湁涓ょ鎯呭喌锛屼竴绉嶆槸闈欐佸叏灞鍙橀噺锛屼竴绉嶆槸闈欐佸眬閮ㄥ彉閲忋傚厛璇撮潤鎬佸眬閮ㄥ彉閲忥細閫氬父鎯呭喌涓嬶紝鍦ㄤ竴涓嚱鏁颁腑瀹氫箟涓涓彉閲忥紝閭d箞鍑芥暟閫鍑轰箣鍚庯紝杩欎釜鍙橀噺灏辨秷澶变簡锛屽嵆浣夸綘绗簩娆¤皟鐢ㄨ繖涓嚱鏁帮紝閲岄潰鐨勫彉閲忎篃浼氳...
  • static 鍦ㄥ崟鐗囨満c璇█鐢ㄧ敤娉
    绛旓細棣栧厛static鍙橀噺涓嶆槸鍏ㄥ眬鍙橀噺锛屽叏灞鍙橀噺鍦ㄦ暣涓▼搴忎腑鍧囧彲瑙併備笖鍙互鍦ㄦ暣涓▼搴忕殑浠讳綍浣嶇疆杩涜淇敼銆傝宻tatic鍙橀噺锛屽彧鍦ㄥ0鏄庡畠鐨勫嚱鏁板唴鐪嬭锛屼篃鍙湁鍦ㄥ0鏄庡畠鐨勫嚱鏁板唴鍙互琚慨鏀广傚嵆渚垮湪鍑芥暟澶栨垨鍏跺畠鍑芥暟涓湁鍚屽悕鐨勫彉閲忥紝涔熷拰瀹冧笉鏄悓涓鍙橀噺銆傚拰灞閮ㄥ彉閲忕浉姣旓紝灞閮ㄥ彉閲忓湪姣忔璋冪敤鍑芥暟鏃讹紝鍙橀噺鍊奸兘浼氶噸缃傝宻tati...
  • c璇█鐨剆tatic涓庡嚱鏁鍙橀噺
    绛旓細static 鍙橀噺 鏄彲浠ユ敼鍙樼殑銆傚彧鏄湪鍒濆鍖栨椂鍊欏彧浼氳祴鍊间竴娆¤屽凡銆傘傘傛瘮濡備綘鍦ㄤ竴涓嚱鏁伴噷瀹氫箟 X 鍙橀噺锛岄偅涔堜綘姣忔璋冭繖涓嚱鏁伴兘浼氬幓瀹氫箟杩欎釜鍙橀噺鍚э紝浣嗘槸濡傛灉浣犳妸 X 瀹氫箟涓 static 绫诲瀷锛岄偅涔堜綘鍙細绗竴娆℃帀瀹冪殑鏃跺欎細鍘诲畾涔夊畠锛屽悗闈㈣皟杩欎釜鍑芥暟鏃讹紝X 鍙橀噺灏卞凡缁忓瓨鍦ㄤ簡涓嶄細鍐嶅幓瀹氫箟銆備絾鏄畠鐨勫艰繕鏄彲浠...
  • c璇█涓:闈欐灞閮ㄥ彉閲忓彧鑳借璧嬪间竴娆,闈欐佸閮ㄥ彉閲忎笌澶栭儴鍙橀噺鑳琚祴鍊煎...
    绛旓細閿欑殑锛鍙橀噺鏄彲浠ヤ慨鏀圭殑锛屽父閲忎笉鍙互 闈欐佸眬閮ㄥ彉閲忓拰闈欐佸閮ㄥ彉閲忔槸涓鏍风殑锛屽樊鍒氨鏄竴涓眬閮ㄤ竴涓叏灞锛屽彧鏄痵tatic鍙堜笉鏄痗onst
  • 涓轰粈涔C璇█绋嬪簭閲,else閲岀殑璇彞涓鑳戒慨鏀箂tatic鍙橀噺鐨勫
    绛旓細鍙互銆傚彲鏄紝閭f椂鍊欙紝閭d釜鍑芥暟涔熻鏄痵tatic鐨勩傚氨鏄锛宻tatic鍙橀噺鏄彧鑳借static鍑芥暟閲岄潰淇敼鐨勩
  • C璇█涓鏌愪竴涓枃浠堕噷瀹氫箟鐨剆tatic鍙橀噺,閭d箞鍙︿竴涓枃浠鑳藉惁璇诲彇杩欎釜鍙 ...
    绛旓細static涓嶆槸鍏佽淇敼锛屼綘浼拌鍜宑onst鎼炴贩浜嗭紝static琛ㄧず闈欐佸瓨鍌紝鐩村埌鏁翠釜绋嬪簭缁撴潫鍙橀噺鍊兼墠浼氫粠瀛樺偍鍖洪噴鏀撅紝闈欐佸彉閲鍙堝垎涓哄叏灞闈欐佸彉閲忓拰灞閮ㄩ潤鎬佸彉閲忥紝鍏ㄥ眬鍙橀噺涓庡叏灞闈欐佸彉閲忕殑鍖哄埆锛(a锛夎嫢绋嬪簭鐢变竴涓簮鏂囦欢鏋勬垚鏃讹紝鍏ㄥ眬鍙橀噺涓庡叏灞闈欐佸彉閲忔病鏈夊尯鍒(b)鑻ョ▼搴忕敱澶氫釜婧愭枃浠舵瀯鎴愭椂锛屽叏灞鍙橀噺涓庡叏灞闈欐佸彉閲...
  • static鍦C鍜孞ava涓殑鍖哄埆銆
    绛旓細1)銆佸彉閲忎細琚斁鍦ㄧ▼搴忕殑鍏ㄥ眬瀛樺偍鍖轰腑锛岃繖鏍鍙互鍦ㄤ笅涓娆¤皟鐢ㄧ殑鏃跺欒繕鍙互淇濇寔鍘熸潵鐨勮祴鍊笺傝繖涓鐐规槸瀹冧笌鍫嗘爤鍙橀噺鍜屽爢鍙橀噺鐨勫尯鍒2)銆佸彉閲忕敤static鍛婄煡缂栬瘧鍣紝鑷繁浠呬粎鍦ㄥ彉閲忕殑浣滅敤鑼冨洿鍐呭彲瑙併傝繖涓鐐规槸瀹冧笌鍏ㄥ眬鍙橀噺鐨勫尯鍒俆ips:A.鑻ュ叏灞鍙橀噺浠呭湪鍗曚釜C鏂囦欢涓闂紝鍒欏彲浠ュ皢杩欎釜鍙橀噺淇敼涓洪潤鎬佸叏灞鍙橀噺...
  • C璇█涓璼tatic鏄仛浠涔堢敤鐨?
    绛旓細static淇グ灞閮鍙橀噺(闈欐佸眬閮ㄥ彉閲)涓庢櫘閫氬眬閮ㄥ彉閲忕浉姣旓紝瀹冪殑浼樺娍鍦ㄤ簬锛氣憼闈欐佸眬閮ㄥ彉閲忎綔鐢ㄥ煙涓庤繛鎺ュ睘鎬т笌鏅氬眬閮ㄥ彉閲忎竴鏍凤紱鈶″瓨鍌ㄧ被锛氶潤鎬佸眬閮ㄥ彉閲忓垎閰嶅湪data/bss娈碉紝鏅氬眬閮ㄥ彉閲忓湪鏍堜笂锛涒憿鐢熷懡鍛ㄦ湡锛氬洜涓哄瓨鍌ㄧ被鐨勪笉鍚岋紝闈欐佸眬閮ㄥ彉閲忕殑鐢熷懡鍛ㄦ湡寰楀埌寤堕暱浜嗭紝鐩村埌绋嬪簭缁撴潫銆2銆乻tatic淇グ鍏ㄥ眬鍙橀噺涓庡嚱鏁帮紝鎴愪负...
  • static鍦c璇█涓殑鐢ㄦ硶
    绛旓細static鍦╟璇█涓槸绉佹湁銆侀潤鎬佹剰鎬濄傜敤浜庡湪鍑芥暟涓0鏄庘滈潤鎬佸彉閲忊濈敤锛屽湪姣忎竴娆¤皟鐢ㄥ悗锛岃鍙橀噺骞朵笉鍦ㄥ嚱鏁拌繑鍥炴椂绔嬪嵆閲婃斁锛屽彉閲忎腑淇濆瓨鐨勫硷紝鍙互淇濈暀鍒颁笅涓娆¤皟鐢ㄦ椂缁х画鏈夋晥銆傜鏈夊氨鏄殣钘忋俿tatic鍑芥暟鍙兘澹版槑鍚庣殑鏈枃涓皟鐢ㄣ俿tatic鍏ㄥ眬鍙橀噺鍙兘澹版槑鍚庣殑鏈枃涓皟鐢ㄣ俿tatic灞閮ㄥ彉閲忓彧鑳藉0鏄庡悗鐨勬湰鍑芥暟璋冪敤 闈欐...
  • c璇█涓潤鎬佸彉閲鏄庝箞鐢ㄧ殑
    绛旓細c璇█涓潤鎬佸彉閲浣滃父閲忎娇鐢紝鐢ㄤ簬瀛樺偍甯告暟銆傚彲鐢╟onst锛宑onstant鎴杅inal绛夊叧閿瓧鏍囪瘑锛屽叾鍊煎氨浼氬湪缂栬瘧鏃惰瀹氾紝骞朵笖鏃犳硶鍦ㄨ繍琛屾椂鏀瑰彉銆傜紪璇戝櫒閫氬父灏嗛潤鎬佸父閲忎笌鏂囨湰涓璧风疆浜庣洰鏍囨枃浠剁殑鏂囨湰鍖哄煙锛岃岄潪甯搁噺鍒濆鍖栨暟鎹垯缃簬鏁版嵁鍖猴紱鑰屽鑻ユ湁闇瑕侊紝鏈変簺缂栬瘧鍣ㄨ繕鍙夋嫨涓哄叾寮杈熶笓鐢ㄥ尯銆傚浜庨潤鎬佸叏灞鍙橀噺鏉ヨ锛岄拡瀵规煇...
  • 扩展阅读:static unsigned char ... c语言static是常量吗 ... c语言中static例子 ... c语言static的用法 ... 静态变量static会变吗 ... c语言static有什么用 ... static int是什么意思 ... static dword c语言 ... c语言中static是什么功能 ...

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