Инициализация массива
Массив может иметь инициализацию, если массив имеет инициализацию, то размерность можно не указывать, она определяется по умолчанию.
int a1[4]={ 2, 5, 9, 10 }; // Массив из 4-х элементов
int a2[7]={ 3, 4, 5 }; // Массив из 7 элементов, проинициализированы первые 3
char c1[]={ ‘A’, ‘g’, ‘1’, ‘y’, ‘I’ }; // Массив из 5 элементов,
// размерность определяется по умолчанию
Если массив объявлен за пределами блоков, то по умолчанию его элементы инициализируются 0.
Массивы и указатели
Имя массива, используемое внутри выражения без [] является указателем на первый элемент массива (элемент с индексом 0). Данный указатель является константным, т.е. его значение нельзя изменять.
Для некоторого массива, например
int A[10];
выполняется равенство A==&A[0]
Доступ к элементу массива возможен или через индексное выражение или через операцию обращения по адресу.
for (int i=0; i<10; i++) A[i]=2*i;
for (int i=0; i<10; i++) *(A+i)=2*i; // Наличие скобок обязательно,
// так как приоритет операции * выше, чем операции +
Кроме того имя массива без скобок является указателем, тип которого соответствует указателю на тип элемента массива. Допустим следующий порядок работы с массивом:
int a[10];
int *p;
p=a;
for(int i=0; i<10; i++) p[i]=i*i;
или
for(int i=0; i<10; i++) *(p+i)=i*i;
Строки
Строка– это символьный массив, заканчивающийся символом с кодом 0 (символ NULL) – это служебный символ, являющийся признаком конца строки.
Практически все стандартные функции, работающие со строками, используют это свойство для определения конца строки.
Примеры:
char str[]=“ABCD”; // Это строка, выделяется память под 5 символов (последний 0)
char c[]={‘A’, ‘B’, ‘C’, ‘D’ }; // Это просто массив из 4-х символов
char *s=“Пример строки”; // Допустимо такое определение строки
Зная признак конца строки можно, например, вычислить длину строки.
int len=0; // Длина строки
for(; s[len]; len++) ;
Дата добавления: 2015-08-14; просмотров: 606;