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

c語言auto

發布時間: 2022-01-22 05:14:25

❶ 關於c語言中auto和register的問題

1、auto變數:
函數中的局部變數,如不專門聲明為static存儲類別,都是動態分配存儲空間的,數據存儲在動態存儲區。在調用該函數時系統會給它們分配存儲空間,在函數調用結束時就自動釋放這些存儲空間。這類局部變數稱為自動變數。自動變數用關鍵字auto作存儲類別的聲明。如:
int f(int a)
{
auto int b,c=3
}
實際上,關鍵字auto可以省略,auto不寫則隱含確定為」自動存儲類別「,它屬於動態存儲方式。程序中大多數變數屬於自動變數。
2、register變數
一般情況下,變數的值是存放在內存中的。當程序中用到哪一個變數的值時,由控制器發出指令將內存中該變數的值送到運算器中。經過運算器進行運算,如果需要存數,再從運算器將數送到內存存放。如果有一些變數使用頻繁,則為存取變數的值要花不少時間。為提高執行效率,C語言允許將局部變數的值放在CPU中的寄存器中,需要用時直接從寄存器取出參加運算,不必再到內存中去存取。由於寄存器的存取速度遠高於內存的存取速度,因此這樣可以提高執行效率。這種變數叫做」寄存器變數「,用關鍵字register作聲明。如:
int fac(int n)
{
register int i,f=1;
}
register變數的說明:
1)只有局部自動變數和形式參數可以作為寄存器變數,其他不行。
2)一個計算機系統中的寄存器數目是有限的,不能定義任意多個寄存器變數。不同的系統允許使用的寄存器是不同的,而且對register變數的處理方法也是不同的,有的系統對register變數當作自動變數處理,分配內存單元,並不真正把它們存放在寄存器中,有的系統只允許將int、char和指針型變數定義為寄存器變數。
3)局部靜態變數不能定義為寄存器變數。如:register static int a;是錯誤。
4)當今的優化編譯系統能夠自動識別使用頻繁的變數,從而自動地將這些變數放在寄存器中,而不需要程序設計者指定。因此在實際上用register聲明變數是不必要的。

❷ C語言中關鍵字auto到底有什麼用途

毫無用途;它已經過時。

❸ C語言中auto定義變數有哪些用法

語言中包括了關鍵字auto,它可用於定義局部變數。但自從所有的非全局變數的預設值假定為auto以來,auto就幾乎很少使用了。 在C或者以前的C++中,auto關鍵字基本上可以被無視:比如這個局部變數:int a = 100;auto int a = 100;並沒有什麼區別。 但是在VC2010中,auto已經有了新的含義,它可以對類型進行推斷使得我們在使用的時候可以這樣auto a = 100;那麼a就是int類型,初始值為100。

❹ c語言中auto什麼意思

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

❺ c語言auto與c ++ auto的區別

在c語言中auto表示變數在內存的棧區中,程序運行結束會自動被釋放.
在聲明變數時不需要特意加auto,默認就是auto變數.
c++11之前跟c語言的auto一樣,11之後auto就變為了自動判斷變數類型.
根據等號右側運算結果來判斷左側變數類型.
比如:
aout a=32.14+3.14; //這時a的類型就是double
auto a=30+3; //這時a的類型就是int

❻ c語言auto定義變數

{
auto int num=1;
printf("The internal block num equal %d\n",num);
num++;
}
這裡面的num是個局部變數阿, 這里所有的num
看成是另一個變數就OK 拉。。。。只在此函數中有效 每次調用函數 重新分配空間

❼ 計算機c語言中auto是什麼意思,有什麼功能

auto表示自動變數
它只能用在局部變數之前
所謂自動變數就是變數的內存分配和回收都通過棧自動完成

全局變數不可以加auto

❽ auto在C語言中的意義

C語言中提供了存儲說明符auto,register,extern,static說明的四種存儲類別。四種存儲類別說明符有兩種存儲期:自動存儲期和靜態存儲期。其中auto和register對應自動存儲期。具有自動存儲期的變數在進入聲明該變數的程序塊是被建立,它在該程序塊活動時存在,退出該程序塊時撤銷。

在函數內部定義的變數成為局部變數。在某些C語言教材中,局部變數稱為自動變數,這就與使用可選關鍵字a u t o定義局部變數這一作法保持一致。局部變數僅由其被定義的模塊內部的語句所訪問。換言之,局部變數在自己的代碼模塊之外是不可知的。切記:模塊以左花
括弧開始,以右花括弧結束。
對於局部變數,要了解的最重要的東西是:它們僅存在於被定義的當前執行代碼塊中,即局部變數在進入模塊時生成,在退出模塊時消亡。
定義局部變數的最常見的代碼塊是函數。

整數變數x被定義了兩次,一次在func1()中,一次在func2()中。func1()和func2()中的x互不相關。其原因是每個x作為局部變數僅在被定義的塊內可知。
語言中包括了關鍵字auto,它可用於定義局部變數。但自從所有的非全局變數的預設值假定為auto以來,auto就幾乎很少使用了

❾ c語言中auto什麼意思

僅在語句塊內部使用,初始化可為任何錶達式,其特點是當執行流程進入該語句塊的時候初始化可為任何錶達式。

C語言中提供了存儲說明符auto、register、extern、static說明的四種存儲類別。四種存儲類別說明符有兩種存儲期:自動存儲期和靜態存儲期。

其中auto和register對應自動存儲期。具有自動存儲期的變數在進入聲明該變數的程序塊時被建立,它在該程序塊活動時存在,退出該程序塊時撤銷。

在函數內部定義的變數成為局部變數。在某些C語言教材中,局部變數稱為自動變數,這就與使用可選關鍵字auto定義局部變數這一作法保持一致。

(9)c語言auto擴展閱讀:

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