为了账号安全,请及时绑定邮箱和手机立即绑定

为什么C中的数组会衰减到指针?

为什么C中的数组会衰减到指针?

C
莫回无 2019-11-15 20:56:43
我想知道数组“衰减”到指针的奇怪的C现象,例如当用作函数参数时。那似乎太不安全了。显式地传递长度也很不方便。而且我可以通过值完美地传递其他类型的集合-结构- 结构不会衰减。这个设计决定背后的原理是什么?它如何与语言整合?为什么结构有所不同?
查看完整描述

3 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

带上您的时间机器,回到1970年。开始设计一种编程语言。您希望以下代码进行编译并执行预期的操作:


size_t i;

int* p = (int *) malloc (10 * sizeof (int));

for (i = 0; i < 10; ++i) p [i] = i;


int a [10];

for (i = 0; i < 10; ++i) a [i] = i;

同时,您需要一种简单的语言。非常简单,您可以在1970年代的计算机上进行编译。“ a”衰减为“ a的第一个元素的指针”的规则可以很好地实现。


查看完整回答
反对 回复 2019-11-15
  • 3 回答
  • 0 关注
  • 448 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信