不同型別的空指標相同嗎?

時間 2021-06-05 12:30:19

1樓:Kent Zhang

((double *)NULL == (int *)NULL)式子為真。

int *p = (int *)NULL;

不會報警告。

int *p = (double *)NULL;

可能會報警告。

2樓:

指標本身並沒有型別,指標指向的物件才有型別。

int指標=指向乙個int物件的指標。

絕大多數指標都是一樣的,就是乙個目標位寬的大小,4位元組、8位元組等等。

唯一特殊的就是"類成員函式指標",這個要說就太多、太累贅了,好在這個很少被用到。

所以,一般意義上的空指標都只是4位元組或者8位元組或者其他大小的乙個數字0而已。

唉,說得我都不知道它們是不是一樣了,樓主好壞!

3樓:邱昊宇

值相同,型別不同。

我覺得題目裡的敘述來自這裡(C99 §6.3.2.3):

If a null pointer constant is converted to a pointer type, the resulting pointer, called a null pointer, is guaranteed to compare unequal to a pointer to any object or function.歌詞大意:空指標保證不與指向任何物件和函式的指標相等。

「空指標常量」和「空指標」是兩碼事,前者需要經過型別轉換才能變成某個型別的空指標。

C 語言中不同型別指標的大小是否完全相同,為什麼?

辰落火輝裂開了 ISO IEC 9899 202x N2596 Working draft 6.3.2.3 A pointer tovoidmay be converted to or from a pointer to any object type.A pointer to any object...

人體需要不同型別的蛋白質嗎?

虞美人 人體可利用的蛋白質由20種氨基酸組成,這20種氨基酸會組成好多種不同的蛋白質,在人體產生不同的作用。人體在進食後,會把食物中的蛋白質分解成最小單位的氨基酸,然後根據自身需要進行重新組合,並不是拿過來直接就用的。所以,你是否攝入了全部20種氨基酸,這20種氨基酸的比例是否是最佳比例就變得尤為重...

c語言陣列可以儲存不同型別資料嗎?

乙隻樹 不可以,陣列的元素必須時同一種型別,因為記憶體的分配是按照 單個元素所佔記憶體 元素個數分配的。當然,你的陣列元素可以是不同型別成員組成的乙個結構體型別。 在c 裡可以做到,比如std variantauto printer auto value else ifconstexpr std i...