Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- double x;
- double *p = &x;
- void *q;
- q + 1;// Синтаксическая ошибка
- double *p, *q;
- p - q;// Расстояние между адресами выраженное в элементах данного типа, тип sizet
- *(p + k);// Значение
- Сокращенное обозначение: p[k];
- double a[5];// a - константный указатель на начало массива
- a = p;// Так нельзя!
- double *p;
- const double *q;// q==100 q++==108
- double * const r;// r++ не определено!
- const double * const s;// s++ не определено!
- &p[k]==(p + k)
- // Лучше писать p + k!
- double a[5];
- double *b[5];
- double (*c)[5];
- double d[2][3];
- double e[5]();
- double (*f)(void);
- Правило интерпритации составных указателей типа:
- (В порядке убывания приоритета:)
- 1) Идентефикатор(имя объекта);
- 2) Если справа стоит ), то найти парную ей ( и проинтерпритировать внутри скобок;
- 3) Если справа стоит (, то:
- То, что уже проитерпритировали есть ф-ия.
- Оставшееся - тип возвращаемого значения.
- Скобки до парной - список типов аргуметов.
- 4) Если справа стоит ], то:
- То, что проинтерпритировали - массив.
- Оставшееся - тип аргумена.
- В [] может стоять размер.
- 5) Если слева стоит *, то то, что проинтерпритировали - указатель. Оставшееся - тип, на который указывает.
- double a;
- double *b;
- double c[2];
- double d(double);
- double *e[3];// e - массив из 3х элементов типа double *
- double (*f)[3];// f - указатель на массив из 3х элементов типа double. f==100 f + 1==124
- double g[2][3];// g - массив из двух элементов типа массив из трех элементов
- double (*h)(double);
- double (*i)[5](double);// i - указатель на массив из ф-ий. Такого не бывает!
- double (*(*i)[3])(double);
- double a[5];// 5 - константное выражение
- // Размещается в стеке
- // В стеке храняться локальные переменные
- // Здесь на компиляторах стек - 4 MiB
- heap(куча)
- void *malloc(sizet len);
- int free(void *);
- или
- void free(void *);
- malloc() возвращает нуль, если не удалось выделить память.
- stdio.h:
- printf(); scanf();
- fprintf(); fsanf();
- sprintf(); sscanf();// Печать/чтение из строки
- snprintf();
- sscanf(const char *std, const char *format, ...);
- int n = 5;
- const char *s = "5";
- int n;
- if( sscanf(s, "%d", &n)!=1 )
- return -1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement