當前位置:首頁 » 編程語言 » c語言auto和static的意思
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言auto和static的意思

發布時間: 2022-12-25 10:50:00

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或'';而auto變數為不確定值。

(6)c語言auto和static的意思擴展閱讀:

auto變數

自動變數(Automatic Variable)指的是局部作用域變數,具體來說即是在控制流進入變數作用域時系統自動為其分配存儲空間,並在離開作用域時釋放空間的一類變數。

在許多程序語言中,自動變數與術語「局部變數」(Local Variable)所指的變數實際上是同一種變數,所以通常情況下「自動變數」與「局部變數」是同義的。

G. 請問在C語言中,auto和static分別代表什麼意思,有什麼作用,謝謝

c語言中變數一共有四種變數存儲類,分別為:
auto(自動變數)
register(寄存器變數)
static(靜態變數)
還有一個是外部變數。
你可以去網路一下了解詳細情況。

H. c語言的auto和static類型變數

auto型變數在函數被調用時,系統為其分配存儲空間。auto型變數存儲在內存的動態存儲區,函數執行後釋放存儲空間。只有函數的局部變數才能定義為auto類型。在定義局部變數時,如果預設存儲類型,則系統將變數當做auto型處理,即默認為auto型變數。

static型變數存放在內存的靜態存儲區,在編譯時為其分配存儲空間並初始化。若沒有賦值,則默認為0。在函數內定義的靜態變數為靜態局部變數,在函數外定義的靜態變數為靜態全局變數。static型局部變數不因函數結束而消失,當再次進入函數時,變數是上一次函數運行結束後的值。無論什麼情況下,都不能被其它函數情況下調用。

I. c語言中auto什麼意思

c語言65分,忘了,但auto根據英文縮寫是自動的意思吧。

J. 請問在C語言中,auto和static分別代表什麼意思,有什麼作用,謝謝

auto變數會存儲在堆棧裡面,每次定義的時候會分配存儲區,而在用完釋放的時候會收回存儲區。
初始化的時候,如果你不賦初值,auto變數是不確定的。C默認的就是auto類型。所以一般都不加。
比如你int a;那a就是auto類型的。
static變數會被存儲在靜態存儲區。你可以理解這個存儲區為公共的。static變數聲明的時候,如果你不初始化,編譯器會自動初始化。而且,你用完了,這個變數的退出值會被保存下來。
static 一般更主要的是和全局變數配合使用,或者那些大量的存儲元素被經常性使用的,比如常量數組,避免不斷地存儲分配