我知道数组会衰减为指针,因此如果声明了
char things[8];
然后在things其他地方使用,things是指向数组中第一个元素的指针。
另外,据我了解,如果有人宣布
char moreThings[8][8];
则moreThings其类型不是指向char的指针,而是类型为“指向char的指针的数组”,因为衰减仅发生一次。
什么时候moreThings传递给函数(例如使用原型void doThings(char thingsGoHere[8][8]),堆栈实际发生了什么?
如果moreThings不是指针类型,那么这真的仍然是引用传递吗?我想我一直认为它moreThings仍然代表多维数组的基址。如果doThings接受输入thingsGoHere并将其自身传递给另一个函数怎么办?
除非有人指定一个数组输入,否则该规则const将始终是可修改的,这是否就是规则?
我知道类型检查工作仅在编译时发生,但是我仍然对从技术上算作按引用传递(即仅在传递类型为指针的参数时才将其视为传递,还是将指针数组传递为传递对象而感到困惑)感到困惑也可以参考吗?)
很抱歉,这个问题到处都是,但是由于我很难理解这个问题,所以很难表达出确切的询问。
ITMISS
一只萌萌小番薯
相关分类