C++ 局部變量

2023-03-20 15:54 更新

現(xiàn)在你大概想知道我們要怎樣在printMultiples和printMultTable兩個(gè)函數(shù)中使用同一個(gè)變量i。我不是說過一個(gè)變量只能聲明一次嗎?函數(shù)改變了變量的值會(huì)不會(huì)出問題?

兩個(gè)問題的答案都是“不”,因?yàn)閜rintMultiples中的i和printMultTable中的i不是同一個(gè)變量。他們的名稱相同,但不會(huì)指向同一塊內(nèi)存地址,因而改變其中一個(gè)值并不影響另外一個(gè)。

不要忘了函數(shù)內(nèi)部聲明的變量是局部的。你不能從局部變量的“宿主”函數(shù)外部訪問此變量,而且你可以給多個(gè)變量起相同的名字,只要他們不在同一個(gè)函數(shù)內(nèi)部。

這段程序的棧圖清晰的表示出兩個(gè)變量i并不占用同一塊內(nèi)存。他們有不同的值,改變一個(gè)并不影響另一個(gè)。

enter image description here

注意,printMultiples函數(shù)中參數(shù)n的值必須與printMultTable中i的值相同。另外,printMultiples中的i值從1增至n。圖中i值為3,下一循環(huán)后將變?yōu)?。

在不同函數(shù)中使用不同變量名以避免混淆,這是個(gè)不錯(cuò)的主意,但重用名稱也有很好的理由。例如用i、j、k命名循環(huán)變量是慣例。如果你在函數(shù)中避免使用這樣的名字,僅僅因?yàn)槟阍趧e處用過了,這樣你的程序?qū)⒖赡茏兊酶y讀。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)