auto什么語言 C語言中的關(guān)鍵字:auto是什么意思?怎么用?
C語言中的關(guān)鍵字:auto是什么意思?怎么用?C語言提供四種存儲(chǔ)描述符:自動(dòng)、寄存器、外部和靜態(tài)。四個(gè)存儲(chǔ)類說明符有兩個(gè)存儲(chǔ)周期:自動(dòng)存儲(chǔ)周期和靜態(tài)存儲(chǔ)周期。Auto和register對應(yīng)于自動(dòng)存儲(chǔ)周
C語言中的關(guān)鍵字:auto是什么意思?怎么用?
C語言提供四種存儲(chǔ)描述符:自動(dòng)、寄存器、外部和靜態(tài)。四個(gè)存儲(chǔ)類說明符有兩個(gè)存儲(chǔ)周期:自動(dòng)存儲(chǔ)周期和靜態(tài)存儲(chǔ)周期。Auto和register對應(yīng)于自動(dòng)存儲(chǔ)周期。具有自動(dòng)存儲(chǔ)周期的變量在進(jìn)入聲明該變量的程序塊時(shí)被創(chuàng)建。當(dāng)程序塊處于活動(dòng)狀態(tài)時(shí)它就存在,當(dāng)程序塊退出時(shí)它就被撤銷。
函數(shù)中定義的變量成為局部變量。在一些C語言教科書中,局部變量被稱為自動(dòng)變量,這與使用可選關(guān)鍵字a u t來定義局部變量是一致的。
C語言32個(gè)關(guān)鍵字里,哪些可以用來聲明定義變量?該注意些什么?
首先,從C語言的特點(diǎn)來看,它是一種靜態(tài)語言,所有變量都必須有一個(gè)類型,無論是基本類型,如int、char、float、double,還是structure、union、enumeration等用戶定義的類型,只要是type關(guān)鍵字,就可以用來定義變量。另外,還有一種叫做指針的變量類型,分為變量指針和函數(shù)指針。變量指針指向特定數(shù)據(jù)類型的地址,函數(shù)指針指向函數(shù)的入口地址??梢酝ㄟ^組合變量類型和*符號來聲明指針。這里需要注意的是,指針是一個(gè)遞歸定義,也就是說,指針可以指向指針,這有點(diǎn)尷尬。核心意思是指針可以一直指向。
函數(shù)指針類型的變量定義有點(diǎn)特殊。下面是一個(gè)示例:
definition:typedef void(*myfun)(int)
void funimp(int param){/*function content*/}
use:myfun=funimpmyfun(10)
總之,請記住定義變量的關(guān)鍵點(diǎn)必須有一個(gè)類型,這與Python和其他動(dòng)態(tài)語言不同。為了更好地了解程序的運(yùn)行狀態(tài),最好了解每種類型的變量所占用的內(nèi)存大小。這是非常重要的。許多錯(cuò)誤是由不同系統(tǒng)中變量占用的內(nèi)存大小不同造成的。例如,對于int類型,在32位系統(tǒng)中需要4個(gè)字節(jié),在64位系統(tǒng)中需要8個(gè)字節(jié)。此外,我們還應(yīng)該清楚內(nèi)存中數(shù)據(jù)的大小模式,即高位字節(jié)是第一位的還是狀態(tài)字節(jié)是第一位的。
c 的auto關(guān)鍵字有什么作用?
實(shí)際上,C語言中有auto關(guān)鍵字,但很少使用。在C或以前的C中,auto關(guān)鍵字聲明自動(dòng)存儲(chǔ)類中的變量,即具有本地生存期的變量,基本上可以忽略:
例如,這個(gè)本地變量:int a=100,auto int a=100沒有任何區(qū)別
但是在C中auto在標(biāo)準(zhǔn)11中有一個(gè)新的含義。可以從聲明的初始化表達(dá)式推斷變量的類型。Auto a=100和int a=100是等價(jià)的