数组的地址是否等于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