Разница между терминологией: элемент vs член (массива)?
В области информатики есть ли разница между элементом массива и членом массива? Является ли он взаимозаменяемым до определенной степени, "правильный" термин зависит от спецификации каждого языка? Или у каждого из них разное значение? Один правильный / неправильный?
Меня учили
myArray[1]
выражается как «второй элемент массива». Но я читал / слышал фразы, похожие на «член массива». При чтении стандартов C у меня сложилось впечатление, что в массивах чаще используется «элемент», а в структуре / объединении - «член». Но потом я обнаружил в спецификации термин «гибкий элемент массива», так что я был озадачен.
Практически на нашем рабочем месте это может иметь значение, а может и не иметь значения, и я бы не стал возражать, если бы кто-то использовал неправильный термин, но на этот вопрос я ищу правильный ответ рациональным.
2 ответа
Официальным справочником по терминологии является стандарт ISO C. Он использует элементы для массивов и членов для структур и объединений. Так должны все остальные, чтобы избежать путаницы.
«Гибкий элемент массива» на самом деле относится к члену структуры, имеющему тип массива. Это пример из стандарта C11, раздел 6.7.2.1.
struct s { int n; double d[]; };
Здесь,
d
является гибким элементом массива. Гибкий массив, в свою очередь, имеет собственные элементы (количество которых пока неизвестно, поэтому массив неполный, поэтому он и называется гибким ).
На мой взгляд, у структуры есть члены (которые могут быть разных типов), а у массива есть элементы (все они одного типа).
Возможно, это связано с тем, что член является именованным объектом, тогда как элемент является позиционным объектом. Линии могут быть немного размыты для некоторых структур данных.
Иногда вместо структуры используется массив, и можно обращаться к элементам как к элементам, поскольку они представляют собой что-то конкретное, что не выражается программно, а только в уме программиста.