数组变量和指针变量有一点小小的区别
所以把数组指针赋值给指针变量的时候千万要小心
加入把数组赋值给指针变量,指针变量只会包含数组的地址信息
而对数组的长度一无所知
相当于指针丢失了一部分信息,我们把这种信息的丢失称为退化
只要把数组当做参数传递给函数,数组免不了退化为指针
但需要记清楚代码中那些地方发生过数组退化
因为他会引起一些不易察觉的错误
举例说明:
char ar[] = "abc";sizeof(ar) 结果为:6char *ch = ar; sizeof(ch) 结果为 8 在32位平台上是4 64位平台是 8
void func(char a[]) {
printf("%lu",sizeof(a));
}
结果为 8 在32位平台上是4 64位平台是 8
时间: 2024-10-23 18:23:56