什么是C数组?

时间:2018-03-13 00:31:06

标签: c++ c arrays

我正在学习C ++,而且我在深入理解C数组时遇到了一些麻烦。我已经在很多程序中使用过它们而没有任何问题,他们认为它们只是指向第一个元素的指针,并且有一个很好的语法来做指针算术...但它们不是,对吧?

就我目前的理解而言,数组的类型为someType[someLength],而指针的类型为someType*,因此它们明显不同。但是对于大多数初学者来说,一些混淆是因为数组传递的值或指向函数的指针“衰减”到指向它们的第一个元素的指针,这也是数组本身的地址。这是否正确(除了明显不完整)?

现在,我的实际问题,究竟是什么数组?
为什么有不同的数组类型,指向数组的第一个成员和指向数组的指针是有用的?由于某些原因显然必须有用,为什么数组会隐式衰减? (或者这种衰变是否被认为是明确的?)
类型t的n个元素的数组与类型为t的struct whit成员有什么不同? (我知道它们不同,但我认为我只看到一些差异)

0 个答案:

没有答案