2013-10-28 20 views

回答

2

在声明int *a[10],a是指向int大小为10的指针数组,因此size = sizeof (int*) * 10

您可以将sizeof操作符来打印它的大小:

printf("sizeof = %zu", sizeof(a)); 

如果某些系统的sizeof指针为int假设为2(因为你的问题说的),然后大小为20个字节。

1

收件与printf ("sizeof (a)= %d\n", sizeof (a));

有点C程序应该打印 “20”,如果的sizeof * INT == 2(像旧DOS机),和 “40”,如果的sizeof * INT == 4.

实施例(32位MSVC编译):

#include <stdio.h> 

int 
main() { 
    int * a[10]; 
    printf ("sizeof(int)=%d, sizeof (*int)=%d, sizeof (a)=%d\n", 
    sizeof(int), sizeof (int*), sizeof (a)); 
    return 0; 
} 

的sizeof(int)的= 4,的sizeof(* INT)= 4,的sizeof(A)= 40

2

这将分配一个由10个整数指针组成的数组,如果一个int指针的大小为2,则占用20个字节。