首頁 >後端開發 >C++ >C 指標大小是固定的還是可變的,函數指標有何不同?

C 指標大小是固定的還是可變的,函數指標有何不同?

Barbara Streisand
Barbara Streisand原創
2024-12-14 09:59:15441瀏覽

Are C   Pointer Sizes Fixed or Variable, and How Do Function Pointers Differ?

指針大小:固定還是可變?

在 C 中,指標具有固定大小,依底層架構而有所不同。通常,在 32 位元系統上,指標佔用 32 位元內存,而在 64 位元系統上,它們佔用 64 位元。這個固定大小可以從下面的程式碼片段看出:

int x = 10;
int *xPtr = &x;
char y = 'a';
char *yPtr = &y;

std::cout << sizeof(x) << "\n";
std::cout << sizeof(xPtr) << "\n";
std::cout << sizeof(y) << "\n";
std::cout << sizeof(yPtr) << "\n";

輸出:

4
4
1
4

如你所觀察到的,無論類型如何,xPtr 和yPtr 的大小都是4他們指出。這是因為指標儲存記憶體位址,其大小由體系結構決定。

但是,要注意的是,函數指標的行為有所不同。它們通常比標準指標佔用更多的空間,因為它們包含有關函數原型的附加資訊。

以上是C 指標大小是固定的還是可變的,函數指標有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn