位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

C語言 aotu變量

提問人:劉團圓發(fā)布時間:2020-12-01

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)部 的復合語句中定義的自動變量同名。

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(0)
返回頂部