c++ sizeof指針與數(shù)組的關(guān)系

c++
小樊
81
2024-09-24 22:51:13

在 C++ 中,sizeof 是一個(gè)運(yùn)算符,用于計(jì)算數(shù)據(jù)類型或?qū)ο笏加玫膬?nèi)存大?。ㄒ宰止?jié)為單位)。對(duì)于指針和數(shù)組,sizeof 的作用略有不同。

  1. 指針:sizeof 用于計(jì)算指針變量所占用的內(nèi)存大小。無(wú)論指針指向何種類型的數(shù)據(jù),指針本身所占用的內(nèi)存大小是固定的。在 32 位系統(tǒng)中,指針通常占用 4 字節(jié)(32 位),而在 64 位系統(tǒng)中,指針通常占用 8 字節(jié)(64 位)。

示例:

int *ptr;
std::cout << "Size of ptr: " << sizeof(ptr) << " byte(s)" << std::endl;
  1. 數(shù)組:sizeof 用于計(jì)算數(shù)組所占用的內(nèi)存大小。數(shù)組所占用的內(nèi)存大小等于數(shù)組中所有元素所占用的內(nèi)存大小之和。需要注意的是,sizeof 計(jì)算的是整個(gè)數(shù)組的大小,而不是數(shù)組中某個(gè)元素的大小。

示例:

int arr[5] = {1, 2, 3, 4, 5};
std::cout << "Size of arr: " << sizeof(arr) << " byte(s)" << std::endl;

總結(jié):sizeof 指針計(jì)算的是指針本身的大小,而 sizeof 數(shù)組計(jì)算的是數(shù)組本身所占用的內(nèi)存大小。

0