c语言数组名代表的意义

数组名代表首元素地址还是整个数组呢?还是说在不同情况下代表不同的意义呢?比如*a = arr,arr代表首元素地址,而sizeof(arr),计算的是整个数组所占字节而不是首元素地址所占字节。

数组名本质上是数组的首地址,是一个常量,用sizeof计算时,计算是以这个首地址开始的数组元素的字节数,如果加上&即取地址操作就是该地址的字节,这个涉及sizeof函数的重载操作,可以具体查看函数的源码深入理解。

1.数组名单独放在sizeof内部,数组名表示整个数组,计算整个数组大小
2.数组名前有取地址符&时,数组名表示整个数组,取出整个数组的地址
3.除以上两种情况,数组名单独出现表示数组首元素地址

供参考:https://zhuanlan.zhihu.com/p/386612468

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^