C語言 aotu變量
aotu型變量是C語言中使用的最為廣泛的一種變量,其類型說明符為auto,也可叫做自動變量。
1.auto變量的定義格式
[auto]數(shù)據(jù)類型變量表;
2.說明
(1)auto可以省略,省略后,和前面所使用的在函數(shù)體內(nèi)定義的局部變量形式一樣,所以C語言規(guī)定,凡是沒有加任何存儲說明符的全部都是aotu型變量。例如如下兩個示例等價:
auto float x,y;
float x,y;
(2)auto變量是動態(tài)存儲方式,其作用域僅限于本函數(shù)體內(nèi),當函數(shù)被調(diào)用時,系統(tǒng)為之分配內(nèi)存空間,函數(shù)調(diào)用結(jié)束,所分配的空間釋放。
(3)若auto變量定義了,但沒有初始化,其值是不確定的。auto變量如果初始化,賦初值操作是在當函數(shù)調(diào)用時,為該變量分配內(nèi)存空間時進行的,且每次函數(shù)調(diào)用都要重新為該變量分配空間并賦一次初值。例如:
void fun()
{
int m=l;
m=m+l;
printf("m=%d\n",m);
}
main()
{
int i;
for(i=l;i<=5;i++)
fun();
}
main()函數(shù)中的變量i及fun()函數(shù)中的變量m都是auto變量,因main()函數(shù)中執(zhí)行一個循環(huán)次數(shù)為5的for循環(huán),每次循環(huán)調(diào)用fun()函數(shù)。每次調(diào)用,都會為變量m分配內(nèi)存空間,并初始化賦值為1,之后執(zhí)行m=m+1操作,m的值為2,并輸出。fun()函數(shù)執(zhí)行完畢,釋放auto變量m所占的空間??梢?看出,無論執(zhí)行多少次,輸出m的值都是2,因為m的值不會保留下來,這就是auto變量的特點。
(4)由于自動變量的作用域和生存期,都局限于定義它的函數(shù)體或復合語句內(nèi),因此不同的函數(shù)體或復合語句中允許使用同名的變量,而不會混淆。即使在函數(shù)內(nèi)定義的自動變量,也可與該函數(shù)內(nèi)部 的復合語句中定義的自動變量同名。
點擊加載更多評論>>