Форум программистов, компьютерный форум CyberForum.ru

Указатели - C++

Восстановить пароль Регистрация
 
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
27.02.2012, 22:51     Указатели #1
помогите выбрать какой вариант

2. Объявлен массив строк. Как вывести на экран третью строку?

char lines[10][20]; char *pl = &lines[0][0];



a. cout << pl[3];

b. cout << *pl[3];

c. cout << pl+3;

d. cout << *pl[3][0];

e. cout << *pl+3;

f. cout << *(pl+3);

Добавлено через 4 минуты
такое ощущение что правильного нету

Добавлено через 10 минут
кто нибудь поможет пожалуйста?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2012, 22:51     Указатели
Посмотрите здесь:

Указатели C++
указатели C++
Указатели C++
указатели C++
C++ Указатели в С++.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
27.02.2012, 23:04     Указатели #2
А слабо проверить это все???

Добавлено через 12 секунд
Цитата Сообщение от sergeu90 Посмотреть сообщение
такое ощущение что правильного нету
Возможно
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
27.02.2012, 23:12  [ТС]     Указатели #3
я уже проверил все

Добавлено через 12 секунд
ничего не подошло
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
27.02.2012, 23:14     Указатели #4
sergeu90, не удивительно. Хотя свое мнение я уже высказал.
Цитата Сообщение от go Посмотреть сообщение
такое ощущение что правильного нету
Возможно
Luke
37 / 37 / 1
Регистрация: 21.02.2012
Сообщений: 95
27.02.2012, 23:16     Указатели #5
Цитата Сообщение от sergeu90 Посмотреть сообщение
char lines[10][20]; char *pl = &lines[0][0];
a. cout << pl[3];
b. cout << *pl[3];
c. cout << pl+3;
d. cout << *pl[3][0];
e. cout << *pl+3;
f. cout << *(pl+3);
Добавлено через 4 минуты
такое ощущение что правильного нету
Добавлено через 10 минут
кто нибудь поможет пожалуйста?

cout<<pl+41; только учти, что если 19 символ в каждой строке не 0, то выведет все до конца + мусорок.
С++ понимает строки, когда они кончаются 0, это типа конец строки для языка
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
27.02.2012, 23:20     Указатели #6
Цитата Сообщение от Luke Посмотреть сообщение
cout<<pl+21;
Нет. Не верно.

Добавлено через 2 минуты
Вот правильный ответ
C++
1
   std::cout << pl + 2 * 20 << std::endl;
Luke
37 / 37 / 1
Регистрация: 21.02.2012
Сообщений: 95
27.02.2012, 23:23     Указатели #7
go, на 1 ошибся?) бывает.
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
27.02.2012, 23:35  [ТС]     Указатели #8
так среди предложенных правильного ответа нету?
Luke
37 / 37 / 1
Регистрация: 21.02.2012
Сообщений: 95
27.02.2012, 23:41     Указатели #9
sergeu90, нет. среди предложенных тобой нет. правильный предложил go, я на 1 пункт ошибся. НО, правильный вариант отработает ТОЛЬКО если каждая строка у тебя оканчивается 0.

например

char mass [3][3] = {'a','b',0,'c','d',0,'h','j',0};

только так отработает правильный вариант go иначе выход тебя удивит
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
27.02.2012, 23:43  [ТС]     Указатели #10
значит я просто напишу что ответа правильного нету
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
27.02.2012, 23:43     Указатели #11
Цитата Сообщение от Luke Посмотреть сообщение
cout<<pl+41;
Почему 41?
Luke
37 / 37 / 1
Регистрация: 21.02.2012
Сообщений: 95
27.02.2012, 23:43     Указатели #12
go, да обсчитался я чутка. ты все верно написал
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2012, 23:44     Указатели
Еще ссылки по теме:

указатели C++
Указатели C++
Указатели C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
27.02.2012, 23:44     Указатели #13
Luke, обычно в таком случаи строки задаются литералами.
Цитата Сообщение от Luke Посмотреть сообщение
что если 19 символ в каждой строке не 0,
Не факт, может и раньше встретиться. Факт, что он должен быть.
Yandex
Объявления
27.02.2012, 23:44     Указатели
Ответ Создать тему
Опции темы

Текущее время: 13:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru