请问在sizeof()里面,为什么sizeof(a)和sizeof(a[])是等价的

请问在sizeof()里面,为什么sizeof(a)和sizeof(a[])是等价的

你是对int a和int a[10]比吧?sizeof(a[])相当于计算数组首地址或者一个指针的大小,就是int类型的大小。指针都占用一个int存储空间

    int a[10];
    printf("sizeof(a): %d, sizeof(a[]): %d\n", sizeof(a), sizeof(a[10]));

// output
sizeof(a): 40, sizeof(a[]): 4

我看到的不一样。前者是整个数组的大小,后者是一个单元的大小。