Массивы и указатели в C — различия между версиями
Материал из Вики ИТ мехмата ЮФУ
Ulysses (обсуждение | вклад) |
Ulysses (обсуждение | вклад) |
||
Строка 2: | Строка 2: | ||
<source lang="c">/* Печать массива */ | <source lang="c">/* Печать массива */ | ||
void print_array(int * a, int sz) { /* вспомните, что "int a[]" ~ "int * a" в параметрах функции */ | void print_array(int * a, int sz) { /* вспомните, что "int a[]" ~ "int * a" в параметрах функции */ | ||
− | int *p; | + | int * p; |
for(p = a; p != a + sz; ++p) { | for(p = a; p != a + sz; ++p) { | ||
printf("%d ", *p); /* p последовательно указывает на все элементы массива */ | printf("%d ", *p); /* p последовательно указывает на все элементы массива */ |
Текущая версия на 19:50, 25 сентября 2013
Работа с массивами через указатели
/* Печать массива */
void print_array(int * a, int sz) { /* вспомните, что "int a[]" ~ "int * a" в параметрах функции */
int * p;
for(p = a; p != a + sz; ++p) {
printf("%d ", *p); /* p последовательно указывает на все элементы массива */
}
printf("\n");
}
/* Ввод массива с клавиатуры */
void read_array(int *a, int sz) {
int * p;
for(p = a; p != a + sz; ++p) {
scanf("%d", p); /* здесь не нужно использовать операцию взятия адреса &, так как
значение указателя это и есть нужный адрес */
}
}