Site Tools


c_parsing

Table of Contents

1

int *a[]   //массивом указателей на int
int (*a)[] //указатель на массив int

2

const char * a = «1»;
1) идентификатор а объявлен как 
2) указатель на
3) значение const char.

char * const a = «1»;
1) идентификатор а объявлен как 
2) const указатель на
3) значение char.

Идеологии

правило было написано у Бочкова и Субботина: «изнутри наружу». Все, что участвует в создании типа объявляемой сущности: const, volatile, *, (), [] читается от имени этой сущности (самая внутренность) — наружу (то есть влево для префиксов и вправо для постфиксов). Постфиксы () [] имют приоритет перед префиксами const volatile *. Приоритет может быть изменен скобками.

В частности:

char const *pch;
  (2) (1)(0)
 <------------
pch(0) — это указатель(1) на const(2)
char* const сpch;
  (2) (1)  (0)
 <------------
сpch(0) — это константный(1) указатель(2)
You could leave a comment if you were logged in.
c_parsing.txt · Last modified: 2013/04/11 02:30 by konovalov

Page Tools