Цитата(sasamy @ Jul 8 2011, 18:41)

ууу... тут наверно книжки не помогут - не нужно изобретать своих определений, все уже определено без вас, в том числе термин "константа"
Код
In computer programming, a constant is an identifier whose associated value cannot typically be altered by the program during its execution (though in some cases this can be circumvented, e.g. using self-modifying code).
Хотя написал некорректно, смысл в том что имя массива это константа и под нее вообще не выделяется память, память выделяется для массива - никакого адреса поэтому не получить.
Ну и где там написано, что адрес констаты нельзя получить? Там написано только то, что значение, связанное с идентификатором константы,
обычно нельзя изменить. В фортране так и без никаких «circumvent»-ов, просто по неосторожности.
Если речь идёт о С, то изобретательность проявили Вы -- в стандарте С «константами» называются только числа, идентификаторы enum и символьные литералы. Имя массива в нём константой не называется. Даже строковые литералы не называются «константами».
А у «константного объекта» адрес может и браться, в зависимости от.
Но я не об этом, не о «взятии адреса константы».
Несмотря на Вашу уверенность как в том, что
abc есть константа, так и в том, что адрес константы получить нельзя
Цитата(sasamy @ Jul 8 2011, 15:01)

Вам бы самому хоть немного почитать. abc -- это указатель-константа которая равна адресу первого элемента массива с нулевым индексом, у константы не может быть адреса.
&abc вполне себе возвращает адрес, только не константы, а массива. Не первого элемента массива, а всего массива.
По одной причине -- имя массива не есть «константный указатель». Имя массива -- выражение, означающее «массив элементов такого-то типа». К выражению «указатель на объект такого-то типа» со значением адреса первого элемента массива оно только
автоматически приводится, но не всегда. Одно из мест -- как раз обсуждаемый унарный &.
Другое -- sizeof(abc), который возвращает размер не «указателя-константы которая равна адресу первого элемента массива с нулевым индексом», а массива.
И строковый литерал "foo" в контексте инициализации символьного массива ведёт себя
не как «константный указатель на первый элемент» строки (неявного массива символов). И, кстати,
&"foo" допустимо на тех же правах, что и
&abc.
Так что почитайте книги, если считаете что Вам, в отличие от меня, они ещё помогут.
____________________________
-- Множество чего?
-- Просто множество.