for 語句中的變數的作用域問題

2021-04-28 17:34:14 字數 2843 閱讀 6921

1樓:叫撒名字啊啊啊

這樣會報錯的,說i沒有定義,因為你i的定義在for迴圈中,所以只能在for中使用i變數,如果想在專整個程式中都使用,請在循屬環外定義。

剛才在vc6.0中測試了,確實沒有報錯,但是i變數在出了for後就已經銷燬了,這個是vc6.0的問題,在vc8中會報錯。

作用域是在for後面大括號之間。

2樓:匿名使用者

按照c++的標準理論上bai應該是{}範圍du,但是微軟的c++編譯器卻zhi不符合標準。所以盡dao量不要回這樣寫吧。可以這樣改

答:int i=0;

for(i=0;i<10;i++)

i++;

要怪就怪微軟吧,很多搞的不標準,沒辦法。以後你使用微軟的c++編譯器,會發現更多奇怪的問題,呵呵。

3樓:張偉**

for(int i=0;i<10;i++)i++;

在baifor迴圈體內是

對的,du這和你所問的問題是兩個zhi概念。i只是一個dao變數回。你所說的程式對的,它答確實是對的,最少在語法上是對的。

前三行,一個迴圈,滿足迴圈的要求。後面i++只是一個普通的變數自加。

i的作用:他的作用域是在main內,我想應該是main內的全域性吧(我自己想的...)

4樓:菜鳥學程式設計

這要看看你是在什

bai麼地方du定義的。

如zhimain()

{int i;

........

}在這dao個例子中,i的作用域是從定版義開始到權程式結束才被銷燬;

而int i;

main()

{.............

}在這裡i是全域性變數,即使程式結束變數i也不會被銷燬。

5樓:小項

這個i的作用於不僅僅限制於for語句中,它的作用域是函式結束的花括號結束

6樓:小飛花兒的憂傷

這個要看具體編譯器怎麼處理了,

如果程式中只有一處用i迴圈那麼用for(int i。。。

否則儘量在前面定義

7樓:裘有福

for語句的作用域是大括號內,如果沒有大括號那就是第一條語句,也就是說見分號就停,

至於這個程式也是對的,因為只要定義了 i 就能用,但結果不一樣,即使結果一樣也是湊巧

8樓:雨斷情

for迴圈中的i的作用域只在for迴圈體內,當離開該迴圈體時,將不再起作用,這個i可以稱之為區域性變數;至於for迴圈後面i,有極大的可能性是你已經在for迴圈前定義過了,故不會報錯。

9樓:

i的作用域在for迴圈體裡面

10樓:匿名使用者

這個並不是區域性變數,再說了,這也是同一個主(子)程式中的,當然都可以用

11樓:匿名使用者

i 在這個函式裡,vc 6 c 貌似可以這麼定義,但不知tb c 可不可以

12樓:夜滔滔

for(int i=0;i<10;i++)i++;//此i為i2

結果內:i2!

容=i1

int fun(void)

i++;

return i;}

13樓:匿名使用者

要看它定義型別是全域性還是其他的

請問在c語言中for迴圈語句表示式1中能否定義變數?如果可以它的作用域又是什麼?

14樓:

標準c語言,變數聲

明必須在語句之前,for 小括號中宣告/定義變數是語法錯誤。

for(int i=0;i錯誤。

標準c語言,每對花括號之間為一個域,每個域中可以宣告/定義變數,它的作用域就是花括號之間。花括號套花括號,則外域量 可以作用到 內域,除非 內域 宣告瞭 同名 變數。

int i;

for(i=0;i<2;i++)

15樓:天地一孤鴻

能。例如for(int i=0;i

關於c/c++,for迴圈中的變數問題

16樓:追悔七年

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

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

17樓:朱古力兜

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

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

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

18樓:匿名使用者

這樣bai

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

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

在新版的標準權

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

vb中for迴圈裡的i的作用域是什麼,i是區域性變數嗎?未經定義直接使用的變數是不是都是區域性變數

19樓:m小灬子

是的  只能在函式或過程的內部使用  外部使用並不會報錯 只是不會有你期望的值

希望幫到你

if語句中括號的條件可以只有變數嗎

可以.與上面幾位一樣.但要理解其中的原理.1.if括號中的值按 邏輯值 處理,即只有兩種 真 和 假 2.通常像 比較運算子 或 邏輯運算子 連線的等式返回的都是邏輯值型別.3.但編譯器通常將 0值 邏輯真,其它值 邏輯假 4.總之,上面的語句當x 0時條件不成立,其它值時條件成立.可以括號裡面的條...

oracle的sql語句where語句中nvl函式的參

引用樓主 其實我就是為了解決前臺傳來的某個條件為空值時,對應的那個條件就不要 不為空時,對應的那個條件就用上 不用這麼麻煩,你在程式中判斷傳來的變數為空時,把條件放到一個字串中,如 string str where 1 1 str and 欄位 變數 然後把這個str追加到你的sql當中不就可以了 ...

cclientdc dc this 語句中的dc是自己定義

cpaintdc cclientdc cwindowdc和cmetafiledc類的主要特點及區別 1 裝置環境 dc 1 在windows中,顯示工作是基於裝置環境的。所謂裝置環境 dc 是一種windows資料結構,該結構包含應用程式裝置輸出時所需要的資訊。2 在使用任何繪圖函式之前必須建立一個...