A. 關於c語言auto變數和static變數區別
auto是自動變數,在C語言中編譯器已給不加關鍵字的定義默認為自動變最,即auto,因此在實際中沒必要加。static是靜態變數,即該變數不會改變,任何賦值都無效,有點類似預處理。
B. C語言auto什麼意識
auto是動態變數修飾符,相對於靜態static。程序運行完成以後自動釋放內存,一般auto修飾符省略。
C. c語言中auto什麼意思
僅在語句塊內部使用,初始化可為任何錶達式,其特點是當執行流程進入該語句塊的時候初始化可為任何錶達式。
C語言中提供了存儲說明符auto、register、extern、static說明的四種存儲類別。四種存儲類別說明符有兩種存儲期:自動存儲期和靜態存儲期。
其中auto和register對應自動存儲期。具有自動存儲期的變數在進入聲明該變數的程序塊時被建立,它在該程序塊活動時存在,退出該程序塊時撤銷。
在函數內部定義的變數成為局部變數。在某些C語言教材中,局部變數稱為自動變數,這就與使用可選關鍵字auto定義局部變數這一作法保持一致。
(3)c語言auto和static的意思擴展閱讀:
C語言
auto被解釋為一個自動存儲變數的關鍵字,也就是申明一塊臨時的變數內存。
例如:
1 autodoublea=3.7;表示a為一個自動存儲的臨時變數。
C++語言
C++ 98標准/C++03標准
同C語言的意思完全一樣:auto被解釋為一個自動存儲變數的關鍵字,也就是申明一塊臨時的變數內存。
C++ 11標准
在C++11標準的語法中,auto被定義為自動推斷變數的類型。例如:
auto x=5.2;//這里的x被auto推斷為double類型
map<int,int>m;
for(auto it=m.begin();//這里it被auto推斷為map<int,int>::iterator類型
it!=m.end();++it)
{
//....
}不過C++11的auto關鍵字時有一個限定條件,那就是必須給申明的變數賦予一個初始值,否則編譯器在編譯階段將會報錯。
參考資料:網路-auto
D. 我想問一下auto是什麼意思
auto是一個C/C++語言存儲類型,僅在語句塊內部使用,初始化可為任何錶達式,其特點是當執行流程進入該語句塊的時候初始化可為任何錶達式。C語言中提供了存儲說明符auto、register、extern、static說明的四種存儲類別。四種存儲類別說明符有兩種存儲期:自動存儲期和靜態存儲期。其中auto和register對應自動存儲期。具有自動存儲期的變數在進入聲明該變數的程序塊時被建立,它在該程序塊活動時存在,退出該程序塊時撤銷。在函數內部定義的變數成為局部變數。在某些C語言教材中,局部變數稱為自動變數,這就與使用可選關鍵字auto定義局部變數這一作法保持一致。
更多關於auto是什麼意思,進入:https://m.abcgonglue.com/ask/29e7ee1615833403.html?zd查看更多內容
E. c語言中變數儲存auto和static是怎麼用
局部變數按照存儲形式可分為auto, static。
與auto類型(普通)局部變數相比, static局部變數有三點不同:
1. 存儲空間分配不同
auto類型分配在棧上, 屬於動態存儲類別, 占動態存儲區空間, 函數調用結束後自動釋放, 而static分配在靜態存儲區, 在程序整個運行期間都不釋放. 兩者之間的作用域(有效范圍)相同, 但生存期不同.
2. static局部變數在所處模塊在初次運行時進行初始化工作, 且只操作一次。
3. 對於局部靜態變數, 如果不賦初值, 編譯期會自動賦初值0或空字元, 而auto類型的初值是不確定的.
特點: static局部變數的」記憶性」與生存期的」全局性」
所謂」記憶性」是指在兩次函數調用時, 在第二次調用進入時, 能保持第一次調用退出時的值.
注意事項:
1. 「記憶性」, 程序運行很重要的一點就是可重復性, 而static變數的」記憶性」破壞了這種可重復性, 造成不同時刻至運行的結果可能不同.
2. 「生存期」全局性和唯一性. 普通的local變數的存儲空間分配在stack上, 因此每次調用函數時, 分配的空間都可能不一樣, 而static具有全局唯一性的特點, 每次調用時, 都指向同一塊內存, 這就造成一個很重要的問題 ---- 不可重入性!!!
F. 關於c語言auto變數和static變數區別
自動變數(auto變數)和靜態變數(static變數)主要有以下幾點區別:
1、static變數存放在靜態存儲區,在程序整個運行期間都不釋放;而auto變數存放在動態存儲區,隨著生命周期的結束而立即釋放。
2、static變數只賦值一次,以後就不用賦值;而auto變數在函數每調用一次都要賦初值。
3、如果用戶不對static變數賦初值,則默認為0或'