-2
A
回答
0
是的,沒關係。它是C和C++標準的一部分。一個常量對象可以用一個非const對象來初始化。爲什麼不呢?
+1
嗯... downvote?你能否提供一份來自標準的報價,說這不正常? :) –
10
取決於代碼的位置。
如果它是在一個函數內,那麼var1
和var2
是自動的,那麼是的,這很好。 var2
只能通過複製var1
進行初始化,所以var1
可以稍後修改的事實與var2
不能這樣的事實沒有關係。
如果它在文件範圍內,那麼var1
和var2
是靜態的,那麼不是不好。文件範圍內的const整型對象必須用編譯時必須知道的值進行初始化(在C++中,這稱爲「整型常量表達式」,我忘記它是否也是精確的C術語)。在這種情況下,您可能會認爲因爲兩個定義之間沒有代碼,所以var1
的值在編譯時已知爲10
,但由於該類型是非常量,所以標準仍然禁止它。你可以認爲這是爲了避免實現需要足夠聰明來應用這種推理,並證明沒有什麼能夠修改var1
:它所要看的只是類型,而不是介入代碼。
相關問題
- 1. 用變量的值初始化常量
- 2. 初始化常量和全局變量
- 3. C++並初始化常量變量
- 4. 正在初始化一個未初始化變量的變量是否合法?
- 5. 變量初始化?
- 6. 初始化變量
- 7. 初始化變量
- 8. 變量初始化
- 9. 變量初始化
- 10. 初始化變量
- 11. 初始化變量
- 12. 初始化變量
- 13. 如何在初始化後始終提供變量/常量?
- 14. 初始化變量在JavaScript
- 15. 常變量初始化只與成員初始化列表
- 16. 未初始化的初始值常量
- 17. 初始化變量的初始化是否正確?
- 18. 初始化向量異常
- 19. Rails:常量不初始化
- 20. 未初始化的常量
- 21. 未初始化的常量
- 22. 未初始化的常量
- 23. 未初始化的常量
- 24. Python:變量未正確初始化?
- 25. 如何正確初始化「min」變量?
- 26. 初始化變量的正確方法
- 27. 需要在運行時初始化的預期常量變量
- 28. as8088變量初始化
- 29. 變量初始化錯誤
- 30. 對象變量初始化
它真的叫做const變量嗎?這感覺像一個矛盾。 –
@David:在C或C++標準中沒有「變量」的概念。我想,技術術語是「常量對象」。 –
這個問題沒有顯示任何研究工作。 –