2014-05-21 11 views
0

由於變量必須由數據類型定義,所以我不明白爲什麼這不適用於文字和常量。 程序如何判斷它是否必須將常量的值保存爲int或double等。 它如何能夠使用算術運算符來計算例如兩個常量的總和。 我的意思是,如果它被保存爲三個(2,3,4)數字的序列,它是如何從234中提取數值的。如果數字首先被數據類型轉換,那麼該數字如何可能具有一個值。我的意思是,當你輸入這些數字時,他們不會被另存爲另一個字符。我的意思是我知道我錯了,但請告訴我爲什麼。文字和常量如何被程序解釋和保存

回答

0

文字確實有類型。例如,

  • 234的類型是int
  • 23.4的類型是double
  • 'a'的類型是char
  • "hello, world"的類型是const char[13]

文字的類型可以用前綴和後綴修改。例如,

  • 234u的類型是unsigned int
  • 23.4f的類型是float
  • L'a'的類型是wchar_t
  • L"hello, world"的類型是const wchar_t[13]

C++ 11添加了其他種類的內置文字和用戶定義的文字。

每個文字都有一個明確定義的類型。當然,像234這樣的文字很容易轉換爲任何數字類型,這就是爲什麼你可以做double x = 234;。在這種情況下,234仍然是int,而不是double