其他分享
首页 > 其他分享> > 数组的地址是否等于C中第一个元素的地址?

数组的地址是否等于C中第一个元素的地址?

作者:互联网

由于WG14 / N1570中的以下句子,这可以在C中得到保证:

6.2.5/20 … An array type describes a contiguously allocated nonempty set of objects with a particular member object type, called the element type.

但是在WG21 / N4527中,即在C中,相应的句子变为

8.3.4/1 …An object of array type contains a contiguously allocated non-empty set of N subobjects of type T.

而“describe”这个词改为“contains”,这不能保证数组的地址等于第一个元素的地址.这种改变是故意的还是无意的?如果是故意的,那么数组的地址是否等于C中第一个元素的地址?如果确实如此,C标准中的哪一段可以保证这一点?

解决方法:

我认为它没有在任何地方明确说明,但我认为它遵循5.3.3尺寸:

the size of an array of n elements is n times the size of an element

唯一可以存储在数组起始地址的是数组的第一个元素.

标签:c,arrays,language-lawyer,memory-address
来源: https://codeday.me/bug/20190724/1526484.html