В случае объявления;Я не понимаю, почему статический критерий, примененный к x здесь?
const int *p;
спецификатор const
применяется к int
т.е., объект p
указывает.
в связи с заявлением (ИЮНЬ 1998 ГОДА, ПРОГРАММИРОВАНИЕ ПРОГРАММИРОВАННЫХ ПОМЕЩЕНИЙ);
Некоторые спецификаторы декларации не вносят вклад в тип идентификатора declarator-id. Кроме того, они определяют другую семантическую информацию, которая применяется непосредственно к идентификатору объявления. Так, например, в:
static unsigned long int *x[N];
ключевое слово
static
не относится кunsigned long int
объектов, указатели вx
точки к. Скорее всего, это относится и кx
себе:
---------------------------
/ \ /\
static unsigned long int * x [N];
Это заявляет, что
x
является статического объектом типа «массив из N элементов указателя на неподписанный долгий Int.»
Я не понимаю, почему static
применяется к x
?
Можете ли вы представить, чтобы применить 'static' к' unsigned long int * ', но не к' x'? Если ответ «нет», то порядок не имеет значения, потому что 'static' и' const' - две разные вещи. В случае 'const' это другое:' const int * p' не совпадает с 'int * const p'. –
Что бы вы ожидали от этого? –
Переменная 'x' имеет тип массива (это' unsigned long * [n] 'часть, точнее это массив указателей' n' для unsigned long. Однако 'static' не имеет ничего общего с типами: it означает класс * хранения * '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list –