sizeof arr和sizeof(arr+1)为啥结果不一样

img


sizeof arr和sizeof(arr+1)为啥结果不一样

sizeof(arr)计算的是数组的大小
sizeof(arr+1)计算的是指针自身的大小,指针自身永远是4字节(32位)

sizeof(arr) 和 sizeof(p) 的结果应该是一样的,因为它们都是指向数组的指针。sizeof(arr) 和 sizeof(p) 都会返回数组所占内存的大小,在这个例子中,数组 arr 有 5 个 int 类型的元素,每个 int 类型的元素占 4 个字节,所以数组 arr 的大小应该是 5 * 4 = 20 字节。

然而,sizeof(arr + 1) 的结果可能会不同。这是因为 arr + 1 是一个指针,它指向数组 arr 中的第二个元素。由于在这个例子中,数组 arr 中的每个元素都是 int 类型,所以 arr + 1 指向的地址比 arr 大 4 个字节。因此sizeof(arr + 1) 返回的是指针变量的大小,通常是 4 或 8 字节(这取决于编译器和系统)。

总结就是sizeof(arr) 和 sizeof(p) 返回的是数组的大小,而 sizeof(arr + 1) 返回的是指针变量的大小。
仅供参考,望采纳。