我知道当我们sizeof在数组名称上使用operator时,它以字节为单位给出数组的总大小.例如
int main(int argc, const char * argv[]) {
int a[][5] = {
{1,2,3,4,5},
{10,20,30,40,50},
{100,200,300,400,500}
};
int n=sizeof(a);
printf("%d\n",n);
}
Run Code Online (Sandbox Code Playgroud)
它给出了数组的60输出15 elements.但是当我写作
int n=sizeof(*a);
Run Code Online (Sandbox Code Playgroud)
它给出20的输出是第一行的大小,而它是行*a的0th元素的基地址0th,它的类型是指向整数的指针.并a指向第一行本身.为什么会这样?