當前位置:編程學習大全網 - 編程語言 - 自動變量在編程中的作用是什麽?

自動變量在編程中的作用是什麽?

自動變量聲明

關鍵字auto用於聲明自動變量,聲明的變量可以省略標識符auto(關鍵字只是編譯器中的壹個特定標識符)。如下所示:

auto int a;(自動變量)

char b;(自動變量的默認形式)

在C++中,自動變量的作用域(程序中變量值的活動範圍)只是變量所在的程序塊或者程序塊內部的程序塊。

說明自動變量範圍的示例:

# include & ltiostream.h & gt

主()

{

int I;(默認自動變量)

int j;

cout & lt& lt“I in outer block is”& lt;& lt我& lt& lt”\ n”;

cout & lt& lt“外部塊中的j是”& lt& ltj & lt& lt”\ n”;

cout & lt& lt“外部塊中的k是”& lt& ltk & lt& lt”\ n”;

{(如您所見,這是壹個內部程序塊)

int k;(默認自動變量)

cout & lt& lt“I in inner block is”& lt;& lt我& lt& lt”\ n”;

cout & lt& lt“內部塊中的j是”& lt& ltj & lt& lt”\ n”;

cout & lt& lt“內部塊中的k是”& lt& ltk & lt& lt”\ n”;

}(回到外部塊)

cout & lt& lt“我在外街區回來了”& lt& lt我& lt& lt”\ n”;

cout & lt& lt" j back in outer block is " & lt& ltj & lt& lt”\ n”;

cout & lt& lt" k back in outer block is " & lt& ltk & lt& lt”\ n”;

}

(可以看出,int表示的數據類型多種多樣,編譯器可能會自動識別int的數據,而{}的位置可以看出代碼在哪個程序塊中,main最大。)

編譯後,您將得到以下錯誤消息:

錯誤:函數main()中有未定義的符號“k”

錯誤:函數main()中有未定義的符號“k”

這是因為變量k是壹個自動變量,它是在內部塊中聲明的,所以它只能在內部塊中存在和被訪問。在外部塊中,編譯器不知道k的值(在外部塊中,它超出了k的範圍)。

修正方法:在內部程序express中刪除K的聲明,在外部程序塊中聲明K即可。

因此得到輸出結果:

我在外面的街區是8886

外部區塊中的j是18

外部塊中的k為0

我在內座是8886

內塊中的j為18

內部塊中的k為0

我回到外間街區8886號

j回到外部區塊是18

外部塊中的l back為0

那麽,I,J,K中的值從何而來呢?

在C++中,如果壹個自動變量沒有在它自己的範圍內初始化,那麽這個變量就是

它可能包含隨機的無用信息值。假設變量I、J和K的初始聲明如下:

int I = 1;

int j = 2;

int k = 3;

最初的結果是:

外部塊中的I是1

外部塊中的j是2

外部塊中的k是3

內部塊中的I是1

內部塊中的j是2

內部塊中的k是3

我在外區的回座是1

j回到外部塊是2

l回到外部塊是3

編譯成功。

  • 上一篇:機器人三定律是由誰提出的
  • 下一篇:過程模擬計算程序設計
  • copyright 2024編程學習大全網