|
|
|
| Как пользоваться указателями на массивы? Вот допустим есть указатель на массив типа int, как при помощи его обратиться к 5 элементу? | |
|
|
|
|
|
|
|
для: asker++
(20.11.2011 в 14:27)
| | Тут вот какая штука, на самом деле в C, а вслед за ним и в C++ указатели и массивы очень связаны, точнее массивы - это и есть указатели, только записанные в более удобной форме. Однако, если вспомнить, что указатель хранит адрес, то достаточно прибавить к нему единицу и можно получить следующий элемент массива
#include <iostream>
using namespace std;
int main()
{
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for(int i = 0; i < 10; i++)
{
cout << *(arr + i) << endl;
}
return 0;
} | причем указатели автоматически прибавляют то количество байт, которое находится в типе, например, для int - это 4 байт, для double - 8. Таким образом обратиться к 5 элементу массива можно при помощи конструкции *(arr + 4), где arr - имя массива (читай указатель). | |
|
|
|
|
|
|
|
для: cheops
(21.11.2011 в 15:48)
| | А как должно выглядеть объявление указателя на массив? Вот если вместо arr мы захотим какой-то свой использовать, я не знаю, там parr? | |
|
|
|
|
|
|
|
для: asker++
(22.11.2011 в 12:19)
| | Фактически arr - это и есть указатель, да можно объявить parr, который будет равен arr и они друг от друга ничем отличаться не будут:
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
// Массива
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// Укзатель на начало массива
int *parr = arr;
// Можно обратиться к указателю
cout << *(parr + 4) << endl; // 5
// А можно через квадратные скобки, как к массиву
cout << parr[4] << endl; // 5
// Пауза перед закрытием
system("PAUSE");
return 0;
} |
| |
|
|
|
|
|
|
|
для: cheops
(22.11.2011 в 16:13)
| | Тоесть массивы и указатели это одно и тоже? Все-равно не понятно, пусть массив arr передается внутрь функции, это будет передача указателя? Или будет передан массив? | |
|
|
|
|
|
|
|
для: asker++
(23.11.2011 в 12:35)
| | Это будет передача указателя, но не просто указателя, а константного указателя. | |
|
|
|