我想知道数组“衰减”到指针的奇怪的C现象,例如当用作函数参数时。那似乎太不安全了。显式地传递长度也很不方便。而且我可以通过值完美地传递其他类型的集合-结构- 结构不会衰减。这个设计决定背后的原理是什么?它如何与语言整合?为什么结构有所不同?
3 回答
猛跑小猪
TA贡献1858条经验 获得超8个赞
带上您的时间机器,回到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的第一个元素的指针”的规则可以很好地实现。
- 3 回答
- 0 关注
- 505 浏览
添加回答
举报
0/150
提交
取消