關於ccfor迴圈中的變數問題,關於C C ,for迴圈中的變數問題

2021-05-22 17:15:17 字數 1309 閱讀 2164

1樓:追悔七年

如果你是抄c語言編譯,在for中是不能定義變數的bai,c++編譯器du可以,在for中的變數作用zhi域在for**塊內,外部的j被隱藏dao.j在for中宣告時被賦值,是一次性的,for的迴圈體不包含賦值語句.

vc6中好像這種寫法有bug,for中的變數具有函式的生命週期.之後的版本解決了這個問題.

2樓:朱古力兜

是for迴圈括號條件裡面已經賦值的

for迴圈裡面定義的變數具有區域性作用域 會遮蔽在其他地方定義的同名變數

在c++裡是可以那樣寫的

3樓:匿名使用者

這樣bai

的寫法在老的c++標準du

下肯定是直接編譯zhi錯誤的,for 裡面的dao j 的作用域是和外面的j一樣的。

在新版的標準權

下,for 裡面的j作用域會比外面的j深一層,如果編譯不會有問題,下面scanf 裡面用到的j,肯定是for那定義的j。c++的名稱查詢規則是由近及遠的。

c++中for迴圈內定義變數的使用範圍,及其他情況下定義變數的使用範圍。

4樓:

c++的每個變數都是有塊級作用域。所謂的塊級作用域,就是變數在定義它的「專{}」裡面都是起作用的,舉屬個例子:

if(int a = 4 > 2)

// 第一層}}

變數a在第一層,第二次,第三層裡面都有效。

變數b在第二次,第三層裡面都有效。

變數c,d在第三層裡面都有效。

5樓:匿名使用者

這是區域性變數,只能在迴圈內使用,不是全域性變數,全域性變數就沒有範圍限制了

6樓:亢愉律經藝

變數i是這樣的。

一般變數的有效範圍十是它靠得最近的兩大

括號之間

,但這之間也可以有任意對的

大括號。

關於c中for迴圈內定義的變數的生命週期

7樓:yhy0302獅子

在c語言中,抄

變數通常要求區域性變數襲

在函式最開始宣告,否則會被編譯器報錯,這種變數的宣告週期只限於在函式體內。

像你提出的這種,可以無視剛才的要求,在函式內部任意位置宣告變數,他的宣告週期就是for迴圈內部,每次進入都是新的變數,佔用棧上空間。

我有一個小竅門,方便記憶,{}內部的變數,宣告週期只在當前{}內。

比如:可以這樣宣告變數,甚至不需要任何迴圈體,或者if,這些變數一旦離開當前{},就被銷燬

C語言,在迴圈中定義變數的地址分配問題

1 理論上是不一樣的bai。但是在實du際中,如果僅僅是進行這zhi樣的迴圈,那麼地址dao是不變的,這回是因為剛剛i被分配 答的地址釋放後沒被其他量佔據,所以再分配的時候還是在原來的地方進行。2 可以寫個程式來檢測下,檢測的方法自然是單步執行,檢視a的地址比如下面的程式,可以檢視 a和p的值,會發...

for迴圈的問題,關於for迴圈的問題

你的fun1中的迴圈變數i在重複使用哦,你把第一重迴圈中的迴圈變數的值而在for i 0 i 4 i 將另外兩個數放入陣列d中 中又改變了其的值,到最後i當然就變為了4,for i 0 i 3 i 尋找四個數中相乘如果個位數等於四位數中的個位數,那麼將這兩個數放入變數b,c中 這個第一重迴圈的值i也...

while迴圈中的p!NULL是指p data和p next其中不為空還是next不為空

p每次都指向當前結點的後繼 next p null,就是檢查結點是不是到了表尾,表尾就是一個空指標 單向連結串列 連結串列最後一個p next為null 其他的p next不位null p null與p next null區別?都起作用,前一個,p就是尾結點,後一個p是尾結點的前一個結點,單連結串列...