C语言只能逐个引用数组元素而不能一次引用整个数组吗?这个正确吗?
答案:4 悬赏:0 手机版
解决时间 2021-01-14 13:05
- 提问者网友:我没有何以琛的痴心不悔
- 2021-01-13 12:46
C语言只能逐个引用数组元素而不能一次引用整个数组吗?这个正确吗?
最佳答案
- 五星知识达人网友:想偏头吻你
- 2021-01-13 12:51
正确。因为它有首地址。
数组名就是首地址,而里面的元素在内存当中的其它N个地址,你访问数组名的时候是访问的首地址。而不会访问其它元素。
所以你引用的时候必须逐个引用才知道具体的值,要不内存中会找不到的。
数组名就是首地址,而里面的元素在内存当中的其它N个地址,你访问数组名的时候是访问的首地址。而不会访问其它元素。
所以你引用的时候必须逐个引用才知道具体的值,要不内存中会找不到的。
全部回答
- 1楼网友:未来江山和你
- 2021-01-13 15:26
你是想整个数组赋值给另外的数组?请用memcpy
- 2楼网友:一叶十三刺
- 2021-01-13 15:12
是的
- 3楼网友:迟山
- 2021-01-13 14:18
错误。
例如sizeof(a),当a是数组名时,含义为整个数组。此外,数组名在一元&操作符之后时,也表示整个数组(对于数组名a,&a返回指向首元素的指针,下列关系表达式的值恒为1:&a == a——其中右操作数是数组名a退化得到的指向a的首元素的指针右值)。LS显然是“数组名是首地址”这种常见错误的被误导者(应该也包括国内一些教材的作者)之一了。
当然,绝大部分情况下通过名称引用数组时,数组名仅是个表示首元素的存储位置的右值,无法通过名称来引用超过一个数组元素。注意以上所有引用整个数组的方式都无法对数组进行修改,因此,要对超过一个数组中的元素直接进行操作,无法直接通过数组名的操作实现。一般使用传递数组名到函数(数组名自动在参数传递过程中退化为指向首元素的指针)来实现。
====
[原创回答团]
例如sizeof(a),当a是数组名时,含义为整个数组。此外,数组名在一元&操作符之后时,也表示整个数组(对于数组名a,&a返回指向首元素的指针,下列关系表达式的值恒为1:&a == a——其中右操作数是数组名a退化得到的指向a的首元素的指针右值)。LS显然是“数组名是首地址”这种常见错误的被误导者(应该也包括国内一些教材的作者)之一了。
当然,绝大部分情况下通过名称引用数组时,数组名仅是个表示首元素的存储位置的右值,无法通过名称来引用超过一个数组元素。注意以上所有引用整个数组的方式都无法对数组进行修改,因此,要对超过一个数组中的元素直接进行操作,无法直接通过数组名的操作实现。一般使用传递数组名到函数(数组名自动在参数传递过程中退化为指向首元素的指针)来实现。
====
[原创回答团]
参考资料:原创
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯