C++ sizeof的用法
时间: 2023-07-16 22:14:50 浏览: 102
C++中的sizeof是一个运算符,用于计算数据类型或变量占用的内存大小,它的语法形式如下:
```c++
sizeof(expression)
```
其中expression可以是数据类型、变量名或表达式。
sizeof返回一个size_t类型的值,表示其操作数所占用的字节数。在使用sizeof时,我们需要注意以下几点:
1. 对于基本数据类型,sizeof返回其占用的字节数,例如:
```c++
sizeof(int) // 返回4,即int类型占用4个字节
sizeof(char) // 返回1,即char类型占用1个字节
```
2. 对于数组,sizeof返回整个数组占用的字节数,例如:
```c++
int arr[5] = {1, 2, 3, 4, 5};
sizeof(arr) // 返回20,即整个数组占用20个字节(假设int类型占用4个字节)
```
3. 对于指针类型,sizeof返回指针占用的字节数,例如:
```c++
int* p = nullptr;
sizeof(p) // 返回8,即指针类型在64位系统下占用8个字节
```
4. 对于结构体类型,sizeof返回整个结构体占用的字节数,例如:
```c++
struct Person {
int age;
char name[20];
};
sizeof(Person) // 返回24,即整个结构体占用24个字节(假设int类型占用4个字节,char类型占用1个字节)
```
5. sizeof不能用于动态分配的内存,例如:
```c++
int* p = new int[10];
sizeof(p) // 返回8,即指针类型在64位系统下占用8个字节
sizeof(*p) // 返回4,即int类型占用4个字节
```
这里sizeof(p)仅返回指针类型占用的字节数,而不是整个动态数组占用的字节数。如果我们想要计算整个动态数组占用的字节数,需要将其乘以数组长度,例如:
```c++
sizeof(int) * 10 // 返回40,即动态数组占用40个字节(假设int类型占用4个字节)
```
阅读全文
相关推荐

















