初始化我相信我是對的,但只是確保 int c;
聲明c
, c = 5;
初始化c
等於5
, 和 int c = 5;
都聲明並初始化c
。 我對所有這些都正確嗎?初始化只是變量設置爲正確的第一個值?定義與可變
定義與可變
回答
int c;
聲明和定義c
。
c = 5;
不是初始化,但它分配值5
到c
,其具有相同的效果。
初始化器是一個語法結構,是聲明的一部分。賦值是一個不同的語法結構,它或多或少地做了同樣的事情。
此:
int c = 5;
聲明並初始化c
; 5
是初始值設定項。
此:
int c;
c = 5;
有同樣的效果,但沒有初始化。
(你可以非正式地說,賦值給變量「初始化」,但它這樣做沒有用初始化。)
一種情況的區別是很重要的:
const int c = 5;
這初始化c
到5
。由於您無法指定const
(只讀)對象,因此無法對作業做同樣的事情。
所有的陳述都是正確的,但是你缺少一個定義,即定義和聲明之間的區別。
int c;
都聲明和定義c
,但不初始化它。
extern int c;
將聲明它,但沒有定義它。 (它不分配存儲空間。)
它比這略微更微妙:'int c;'是*暫定義*。這就是爲什麼'int c; int c = 5;'被接受。 'int c = 5; int c = 2;'由於顯而易見的原因被拒絕,'int c = 5; int c = 5;',因爲它試圖定義'c'兩次。 –
@PascalCuoq,如果你能找到標準的參考,我會修改它並參考標準。我目前找不到它。 – merlin2011
C99 6.9.2:2 .... –
初始化是變量初始值的設置,所以你是正確的。
這是第一線斷維基百科文章上初始化:
在計算機編程,初始化爲數據對象或變量的初始值的分配。
- 1. 定義方法與UINT8可變
- 2. 使用Javascript - 定義與可變
- 3. 未定義可變
- 4. 定義可變數量的變量與ajax發佈
- 5. 與未定義的變量
- 6. 自定義變量與JsRender
- 7. 定義setContentView與變量
- 8. 未定義annidate可變 - 角
- 9. python可變函數定義
- 10. 說明:未定義可變
- 11. Ansible未定義可變
- 12. 如何定義require.config()可變
- 13. 未定義連接可變
- 14. 未定義可變PHP
- 15. 定義的file_get_contents可變
- 16. 未定義可變循環
- 17. 自定義註釋與自定義變量
- 18. 未定義索引通知和未定義可變通知
- 19. 變量未定義,當它應該是可見的(定義)
- 20. 定義變量與咕嚕-的contrib少
- 21. 未定義的變量與OpenID
- 22. 自定義TypeConverter與變量StandardValues
- 23. 問題與未定義的變量
- 24. PHP中未定義的變量與類
- 25. 未定義的變量,值== false與!值
- 26. 定義全局變量在Perl與`strict`
- 27. 定義和變量聲明與價值
- 28. 未定義PHP變量與PDO
- 29. 用*定義的Perl變量與$
- 30. 與Session變量未定義指數
是的,這是正確的。 –
更正我的朋友 – Alaeddine