作者becoder (程式學習者)
看板C_and_CPP
標題[問題] C++變數宣告與C差異
時間Tue Feb 20 10:31:01 2018
交大的開放式課程OOP中
有段
C++ allows variables to be declared anywhere and hereafter uses them in the curr
ent block.
老師說C++變數可以宣告在任何地方的變數使用前
我想的是C語言這部分操作也可以
除了for(int I=0,...)這個C語言不行之外,沒有想到其他的使用情況
可以請大家多說明些嗎?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.137.83.26
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1519093864.A.207.html
1F:推 steve1012: 沒聽懂你的問題 02/20 10:46
就是關於C++的變數可以在使用前才宣告,可以再詳細說明一下嗎?
因為感覺不出來跟C語言有差別
※ 編輯: becoder (114.137.83.26), 02/20/2018 10:53:53
2F:推 wei115: c99可以for(int;;) 02/20 11:12
3F:推 steve1012: 舊的 c standard 好像有要求要4在前面先宣告所有變數 02/20 11:14
4F:→ steve1012: 但這改掉了 02/20 11:14
5F:→ PkmX: C89要求變數宣告都要在block的最開頭 不能穿插在statement間 02/20 12:11
6F:→ PkmX: 不過C99和C++沒這個限制 大多數的compiler也提供extension繞 02/20 12:11
7F:→ PkmX: 過這個限制 02/20 12:11
8F:→ PkmX: 原則上建議是變數的lifetime越短越好啦 避免誤用 02/20 12:13
9F:→ Feis: scope 越小越好 02/20 13:32
10F:推 TitanEric: ㄟ 真的耶 我看K&R的書沒注意到書裡真的會先宣告for裡 02/20 13:45
11F:→ TitanEric: 面的變數耶 02/20 13:45
12F:推 soheadsome: c99之後跟c++差不多 02/20 14:37
13F:推 jaid: C根據不同的標準差不少 02/20 15:06
14F:推 chchwy: 以前的C不行 02/20 17:48
15F:推 dces4212: keil的compiler就會要求宣告在最前面QQ 02/21 13:36
16F:→ Lipraxde: 印象中有參數可以調 02/21 19:12