IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   Перечитывая учебники. (http://www.imho.ws/showthread.php?t=101561)

strah 30.03.2006 15:15

Перечитывая учебники.
 
Начал тут читать Страуструпа, дабы повысить общий уровень, очень удивился, когда в первом же упражнении нашел задачу, с которой не смог справиться. Вроде не 1 год писал, правда мелкие задачи и эпизодически.

Итак люди вопрос вам.
Как выглядит определение ссылки на масив из 10 целых?
Указатель понятно, ссылка на целое понятно.
Ссылка на массив непонятно. Как-то всегда без подобного обходился, очень интерестно. Попробовал 10-ок вариантов, ни один не был пропущен компилятором. Помогите теперь вы.

ЕЖ 30.03.2006 15:32

Ну если...

int a[10];
int *b=a;

...то b и будет ссылкой на этот массив, впрочем и как само a. Указатель не может содержать информации о количестве элементов массива. Можно только судить о размере элемента массива исходя из типа указателя.

strah 30.03.2006 15:35

Ты путаешь ссылку с указателем. Я спросил про ссылку.
Впрочем я только что прочитал задание снова, там написано ссылки на массив из 10 целых. Так что ссылки на элементы тоже будут ответом, проблемма в том, что их мне написать тоже не удается.

ЕЖ 30.03.2006 15:51

Кажется понял что тебе надо...

typedef int mas[10];
mas a;
a[0]=5; // для примера
mas &b=a;
cout << b[0];

...выдает 5

strah 30.03.2006 16:25

Про переопределение типов я не подумал!!!
Мысль супер:)

Еще вариант int (&a)[10] и все ок:)

ЕЖ 30.03.2006 16:50

А какой смысл твоего последнего варианта? Ссылка ведь должна все-таки на что-то другое ссылаться. А такая запись только ради самой себя получается.

strah 30.03.2006 16:58

Не, я просто не дописал
int a[10];
int (&b)[10]=a;

На руборде подсказали.


Часовой пояс GMT +4, время: 19:59.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.