void main()
{
char a[4];
void *b;
void *c;
b = a;
c = &a;
}
上面的代码中,b=a;c=&a;二者都获得的是数组a的首地址,所以b与c的值不同,但本质上,a和&a的类型是不同的:在b=a中,a等价于&a[0],此处适当做char*(即指向char变量的指针)类型使用。&a表示数组a的地址,所以类型是“指向含4个char元素的数组的指针”。
---数组形式的形参本质上是指针。
void main()
{
char a[4];
void *b;
void *c;
b = a;
c = &a;
}
上面的代码中,b=a;c=&a;二者都获得的是数组a的首地址,所以b与c的值不同,但本质上,a和&a的类型是不同的:在b=a中,a等价于&a[0],此处适当做char*(即指向char变量的指针)类型使用。&a表示数组a的地址,所以类型是“指向含4个char元素的数组的指针”。
---数组形式的形参本质上是指针。