Информатика и технология программирования


Строки, массивы символов и указатели char* - часть 2


СТРОКОВАЯ КОНСТАНТА в любом контексте программы это указатель на создаваемый транслятором массив символов, инициализированный этой строкой.


char *q; // ПРОГРАММА


q = "ABCD";
char *q; // ЭКВИВАЛЕНТ


char A[5] = {'A','B','C','D','\0'};
q = A;

С точки зрения такого определения корректны и такие на первый взгляд " дикие" выражения:


char c,*q;
c = "ABCD"[3];
q = "12345" + 2;
for (q = "12345"; *q !='\0'; q++);

Таким образом, имя массива символов, строковая константа и указатель на строку на самом деле имеют в языке один и тот же тип char*, поэтому могут использоваться в одном и том же контексте, например, в качестве фактических параметров функций:


extern int strcmp(char *, char*);
char *p,A[20];
strcmp(A,"1234");
strcmp(p,A+2);




Начало  Назад  Вперед