2016-08-19 128 views
-2

例如,我們可以說指針值指定了一個對象嗎?

int a = 10; 

顯然,a指定int對象,其存儲10。但是說&a指定一個對象是否是真的?由於&a是一個地址值,我認爲它在內存中指定了一個字節對象!

+2

我實際上並不知道你打算「指定」什麼意思,但對我來說'&a'是一個指向某個「對象」的指針。 – John3136

+0

'a' *是* int * *變量*,其中*包含*'10'。沒有關於它的「指定」或「對象」。因此,「a」的地址也沒有「指定對象」。無論「a」是什麼,「&a」都是它的指針。 – EJP

+0

@EJP你是否說C中的術語'指定'和'對象'不是標準術語? – Jin

回答

2

在C標準的術語中,左值表達式可以指定一個內存位置。 &a不是左值,所以它不指定任何東西。

+0

你能解釋爲什麼指針值不是左值嗎?根據ISO C11 6.3.2.1,它說左值是可能指定對象的表達式。由於指針值指定了一個字節的對象,我認爲指針值應該是一個左值! – Jin

+0

你能解釋一下左值與這個問題有什麼關係嗎? – EJP

+0

@Jin指針值不指定對象。此代碼中沒有任何單字節對象,'int'可能是2或4個字節。 –

相關問題