2013-05-08 47 views
0

§6.3.2.1(第72頁)說明了在左值轉換過程中,爲什麼是&so特殊和|從未提及?

  • 一種lvalue指對象即一塊內存。
  • 在評估表達式時,對象被轉換爲它們的值,即不再是對象。值得注意的例外是=,&,.,++,--,sizeof的左操作數。
  • 數組通常轉換爲指向其第一個元素的常量指針。 &的操作數也是一個例外。
  • 函數被隱式轉換爲指向函數的指針。除了當時的一元化目標&

爲什麼單數&如此特別?爲什麼從未提到過一元|

+1

什麼是一元的'|'? – 2013-05-08 07:15:41

+1

@Jens Gustedt,OMG,你回答我的問題。我想和二進制,並使用一元沒有意識到這一點的意思的詞。嗯。因此,他們都在談論他經營者「地址」! – Vorac 2013-05-08 07:26:43

回答

2

我不知道是你的問題所在,但大部分你被賦予的主張是至少部分錯誤

  • 左值是指一個對象,即一塊內存。

一個對象不一定是一塊內存,值得注意的例外是用register聲明的變量。一個物體是一個明確的生活時間和類型的地方。

  • 在評估表達式時,對象被轉換爲它們的 值,即不再是對象。

這是指出事情奇怪。在表達式評估過程中,對象被評估。對象本身沒有變化

  • 值得注意的例外是=,&,。,++, - ,sizeof的左操作數。

您在這裏混合了非常不同類型的操作符。一個sizeof運營商的價值如何是一個左值,我無法追隨。你可能是說左值轉換不適用於他們?這只是因爲這些操作符對對象(更改對象)或需要對象的屬性(而不是可能轉換的值)起作用。

  • 通常將數組轉換爲指向其第一個 元素的常量指針。 &的操作數也是一個例外。

這裏的sizeof運營商是另一個。

  • 函數被隱式轉換爲指向函數的指針。除了 時,一元的目標&。

...他們只是明確地轉換。

+0

感謝。對象的定義非常清晰。最後一點回答了我的愚蠢問題。 – Vorac 2013-05-08 07:37:02

相關問題