sizeof(x)和sizeof(p_x)之间有什么区别
你能告诉我下面代码中sizeof(x)
和sizeof(p_x)
之间的区别是什么?
int x[10], *p_x; p_x = (int*)malloc(10 * sizeof(int));
sizeof(x)
给出数组x
使用的字节数。
sizeof(p_x)
给出指针使用的字节数。
#include int main() { int x[10], *p_x; printf ("%lu %lu\n", (unsigned long)sizeof(x), (unsigned long)sizeof(p_x)); return 0; }
节目输出:
40 4
我的MSVC使用32位指针和32位整数。
编辑改进了下面评论后的数字格式,谢谢。
sizeof(x)
是数组对象的大小。 它的值是10 * sizeof (int)
。
sizeof(p_x)
是指针对象的大小。 它的值是sizeof (int *)
。
sizeof(x)以字节(10 * sizeof(int),sizeof int为4个字节)返回数组的大小,而sizeof(p_x)返回指针的大小。 如果你使用64位机器,那就是8字节,如果是32位机器,则是4字节。