3 回答

TA貢獻1842條經(jīng)驗 獲得超13個贊
自動變量(auto變量)和靜態(tài)變量(static變量)主要有以下幾點區(qū)別:
1、static變量存放在靜態(tài)存儲區(qū),在程序整個運行期間都不釋放;而auto變量存放在動態(tài)存儲區(qū),隨著生命周期的結(jié)束而立即釋放。
2、static變量只賦值一次,以后就不用賦值;而auto變量在函數(shù)每調(diào)用一次都要賦初值。
3、如果用戶不對static變量賦初值,則默認為0或'\0';而auto變量為不確定值。

TA貢獻1877條經(jīng)驗 獲得超6個贊
static 是靜態(tài)變量 就是在進程運行整個過程中一直存在的 ,函數(shù)里的 static變量可以保存上次運行時的值 在下次調(diào)用時使用
函數(shù)外的 static 變量只在本文件中可以使用 ,在同時編譯的其他文件中是不能訪問的
auto 變量就是函數(shù)運行時存在 函數(shù)結(jié)束了變量就不存在了,下次再運行到這里,再次使用,結(jié)束時再次失效
一時理解不了沒關(guān)系,慢慢會理解的。

TA貢獻1807條經(jīng)驗 獲得超9個贊
在這兩段程序中,在第一個中,當主函數(shù)每次調(diào)用AddOne()函數(shù)時,所定義的變量ia的初始值都是1;而在第二個中,主函數(shù)第一次調(diào)用AddOne()函數(shù)時,ia=1,當?shù)诙握{(diào)用時,ia的初始值就是上一次執(zhí)行AddOne()函數(shù)后ia的值了;
static 是靜態(tài)變量,其作用域是全局。
auto變量,作用域只是當前函數(shù)。
- 3 回答
- 0 關(guān)注
- 1416 瀏覽
添加回答
舉報