作業問題:數組值是什麼?
鑑於數組雙X [3],什麼是x的「價值」?提供 可能的值。給定前一點的v值,x [0],x [1]和x [2]的地址是 。
個人方面的考慮:
在我看來一個數組的值是其收藏的物品。例如。
double x [3] = {8,9,88};
但這個問題會讓我覺得'值'是指數組的機器起始地址(數組的基地址)。
我的推理是正確的?你會給你什麼答案?
作業問題:數組值是什麼?
鑑於數組雙X [3],什麼是x的「價值」?提供 可能的值。給定前一點的v值,x [0],x [1]和x [2]的地址是 。
個人方面的考慮:
在我看來一個數組的值是其收藏的物品。例如。
double x [3] = {8,9,88};
但這個問題會讓我覺得'值'是指數組的機器起始地址(數組的基地址)。
我的推理是正確的?你會給你什麼答案?
沒有你的推理是不正確的。 x
的值只是一個地址 - 數組中第一個元素的地址。至於x[0]
,x[1]
和x[2]
的地址分別是x+0
(或簡單地說是x
),x + sizeof(double)
和x + sizeof(double) * 2
。
編輯:正如Joachim Isaksson指出的那樣,實際上x和裸指針之間存在一些差異。例如sizeof(x)
是單個元素的數量的兩倍,大小爲x
。
那麼......'double x [3]'給出sizeof(x)'爲24,而不是指針通常會做的4或8。這意味着x的值是24字節。 –
@JoachimIsaksson我不知道你在說什麼。我的意思是我從來沒有使用'sizeof(x)'。 –
'double * y;雙x [3]; std :: cout << sizeof(x)<<「 - 」<< sizeof(y)<< std :: endl;'在我的機器上給出了'24 - 8'。如果'x'的值是一個指針,'x'的大小不會和'y'的大小相同嗎? –
x本身是一個數組的左值,該數組在一個特定的存儲器地址中包含三個雙精度值。而已。
現在有許多情況下,這樣的值將被轉換爲指向該數組的第一個元素的「double指針」,但還有其他情況下,這種情況不會發生:當數組是操作數時sizeof,&(地址)或_AlignOf運算符。
所以如果有人說「x的值只是一個地址」,這是錯誤的,因爲sizeof(x)不是地址的大小,而是雙倍大小的三倍。 「
」家庭作業問題:「請自己做作業。 – JakeGould
我會在這裏說,價值是指一個地址。 –
這感覺就像一個家庭作業問題。 – Zane