【发布时间】:2021-12-30 16:44:07
【问题描述】:
#include<stdio.h>
void func(int a[10]);
int main(void) {
int arr[10];
func(arr);
return 0;
}
void func(int a[10]) {
int b[10], x=5;
a =&x;
b =&x; //error: assignment to expression with array type
}
在此处提到的此 C 代码中,b=&x 存在错误,因为分配给具有数组类型的表达式
但为什么不使用a=&x 毕竟a 是func 的数组?
【问题讨论】:
-
数组衰减为从数组头地址开始的指针。尽管您可以像数组一样对其进行迭代,但由于实际内存地址仍然保存数据,因此类型已经衰减,因此会遇到打字问题。