回复 10楼 huang1228897
sizeof 经常用于书写,对可移植有要求的代码。做为一个习惯,任何需要使用变量类型大小的地方应该全部都用 sizeof。siseof 操作符的作用是返回一个对象或类型名的字节长度它有以下三种形式
sizeof (type name );
sizeof ( object );
sizeof object;
返回值的类型是size_t 这是一种与机器相关的typedef 定义我们可以在cstddef 头文
件中找到它的定义下面的例子使用了sizeof 的两种格式
#include <cstddef>
int ia[] = { 0, 1, 2 };
// sizeof 返回整个数组的大小
size_t array_size = sizeof ia;
// sizeof 返回int 类型的大小
size_t element_size = array_size / sizeof( int );
当sizeof 操作符应用在数组上时例如上面例子中的ia 它返回整个数组的字节长度
而不是第一个元素的长度也不是ia 包含的元素的个数例如在一台int 类型是4 个字节
长的机器上sizeof 指示ia 的长度是12 字节类似地当我们写如下代码时
int *pi = new int[ 3 ];
size_t pointer_size = sizeof ( pi );
sizeof(pi)返回的值是指向int 型的指针的字节长度而不是pi 指向的数组的长度
以上是C++ Primer 3ed.介绍sizeof的内容sizeof (type name );
sizeof ( object );
sizeof object;
返回值的类型是size_t 这是一种与机器相关的typedef 定义我们可以在cstddef 头文
件中找到它的定义下面的例子使用了sizeof 的两种格式
#include <cstddef>
int ia[] = { 0, 1, 2 };
// sizeof 返回整个数组的大小
size_t array_size = sizeof ia;
// sizeof 返回int 类型的大小
size_t element_size = array_size / sizeof( int );
当sizeof 操作符应用在数组上时例如上面例子中的ia 它返回整个数组的字节长度
而不是第一个元素的长度也不是ia 包含的元素的个数例如在一台int 类型是4 个字节
长的机器上sizeof 指示ia 的长度是12 字节类似地当我们写如下代码时
int *pi = new int[ 3 ];
size_t pointer_size = sizeof ( pi );
sizeof(pi)返回的值是指向int 型的指针的字节长度而不是pi 指向的数组的长度
以上为C++ Primer 4ed.介绍sizeof的内容