O
OverCplusplus
Привет. У меня в книжке написано:
К примеру:
<!--shcode--><pre><code class='С++'>#include<iostream>
using namespace std;
int main()
{
int test[2][10]={
{1,2,3,4,5,6,7,8,9,10},
{1,2,3,4,5,6,7,8,9,10}
};
int *t,*e;
t=test; e=&test[1][10];
while(t<=e)
{
cout<<*t;
t++;
}
}[/CODE]
В программе один указатель указывает на начало массива, второй на конец, и с помощью цикла cout выводит элементы массива на экран, пока не будет достигнут конец массива.
По идее, согласно книге в записе t=test ничего плохого нет... компилятор ругается: невозможно преобразовать
Пишу я программу - не работает.4.6. Указатели и многомерные массивы
Для начала рассмотрим пример объявления двумерного массива:
...
int mas[4][2];
int *ptr;
...
Тогда выражение рtr=mas указывает на первый столбец первой строки матрицы. Записи mas и &mas[0][0] равносильны. Выражение рtr+ 1 указывает на mas[0][1], далее идут элементы: mas[1][0], mas[1][1], mas[2][0] и т. д.; ptr+5 указывает на mas[2][1].
...
К примеру:
<!--shcode--><pre><code class='С++'>#include<iostream>
using namespace std;
int main()
{
int test[2][10]={
{1,2,3,4,5,6,7,8,9,10},
{1,2,3,4,5,6,7,8,9,10}
};
int *t,*e;
t=test; e=&test[1][10];
while(t<=e)
{
cout<<*t;
t++;
}
}[/CODE]
В программе один указатель указывает на начало массива, второй на конец, и с помощью цикла cout выводит элементы массива на экран, пока не будет достигнут конец массива.
По идее, согласно книге в записе t=test ничего плохого нет... компилятор ругается: невозможно преобразовать
Люди, что я сделал или понял не так, помогите пожалуйста.невозможно преобразовать 'int [2][10]' в 'int *' Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции