1. Массивы(Arrays), Символьные строки(Character String) и нулевой символ(Null Character) '\0'.
2. Библиотека string.h
и одна из её функций strlen()
.
char str[10] = "Hello!";
printf("%zu", strlen(str));
3. Символические константы(Symbolic Constants), то есть неизменяемые переменные(Immutable Variables) и модификатор(Modifier) const
; а также директива препроцессора с подстановкой во время компиляции(Compile-time Substitution) #define
.
#define PI 3.14159 //symbollic constant
const double g = 9.81; //also symbollic constant
double rad = 180 / PI; //this line after preprocessing turns into the next line
double rad = 180 / 3.14159; //this line with substitution is then compiled
4. Зависящие от реализации(Implementation-dependent) типы с описывающими их символическими константами в limits.h
: ULLONG_MAX
, CHAR_BIT
, USHRT_MIN
, SCHAR_MIN
; и float.h
: FLT_EPSILON
, FLT_MANT_DIG
, DBL_DIG
.
5. Возвращаемое значение(Return Value) функций printf()
— количество успешно выведенных символов; и scanf()
— количество успешно введённых аргументов.
int output = printf("Hello!\n");
printf("%d\n", output); //seven sucessfully printed characters
int input = scanf("%d", &input);
printf("%d", input); //either zero or one successfull input
6. Проблема несоответствия типа преобразований(Mismatched Conversions).
7. Обработка ввода функцией scanf(): пробельные символы(Whitespaces) — все введённые Enter, Space и Tab; и чтение с потока ввода(Input) — временного файла откуда всё выводится на консоль.
int n1, n2, n3;
char c1, c2, c3;
//unsuccessfull input of c1, always assigned with '\n'
scanf("%d", &n1); //number entered then Enter pressed
scanf("%c", &c1); //after '\n' was assigned to c1
printf("First input: %d%c\n", n1, c1);
//successfull input only with ',' otherwise c2 is not assigned with any character
scanf("%d,%c", &n2, &c2); //after number expected ','
printf("Second input: %d,%c\n", n2, c2);
//successfull input of c3 in all cases
scanf("%d", &n3); //number entered then Enter pressed
scanf(" %c", &c3); //all whitespaces are ignored
printf("Third input: %d %c\n", n3, c3);
Язык программирования Си 6 издание. Стивен Прата
C Primer Plus 6th edition. Stephen Prata
Top comments (0)