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

Что значит char c[10] - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.89
time123
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 53
16.11.2012, 02:40     Что значит char c[10] #1
объясните пожалуйста пошагово этот код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
 
int main( )
{
   char c[10], c2;
 
   cout << "Type 'abc': ";
   c2 = cin.get( );
   cin.unget( );
   cin.getline( &c[0], 9 );
   cout << c << endl;
}
хочу понять, что значит char c[10] это создание массива из 10 символов?
что делает функция get и unget, и getline... что это за параметры, &c[0] передается по ссылке... а нельзя просто передать, зачем по ссылке передавать? и что девять означает. эх, вот начинаю C++ изучать. конечно непривычно весьма.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2012, 02:40     Что значит char c[10]
Посмотрите здесь:

Что значит? C++
Sleep(8000) - что значит? На что можно заменить в борланд с++? C++
C++ Что значит Handle hf? Что в эту функцию нужно передавать
C++ что значит ?
что значит static char? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
time123
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 53
18.11.2012, 21:04  [ТС]     Что значит char c[10] #21
Ну конечно меняет.

Добавлено через 10 минут
А вот в этом примере

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include  <iostream >
using namespace std;
 
int string_length(char *string) {
    int length = 0;
 
    while (*string != '\0') {
       length++;
       string++;
    }
 
    return(length);
}
 
 
int main () {
    char title[] = "Учимся программировать на языке C++";
    cout  << string_length(title) << " symb";
 
    return 0;
}
получается мы передали в функцию сразу всю строку целиком (весь массив) по значению? а уже в функции создается указатель на первый символ, так?

пожалуйста, можете все варианты перечислить как можно передать эту строку в функцию: по значению, по ссылке, все варианты.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,917
Записей в блоге: 2
Завершенные тесты: 1
18.11.2012, 21:07     Что значит char c[10] #22
Цитата Сообщение от time123 Посмотреть сообщение
получается мы передали в функцию сразу всю строку целиком по значению? но уже в функции создается указатель на первый символ, так?
Так. Создается копия переданного указателя, с ней мы и работаем.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
18.11.2012, 21:07     Что значит char c[10] #23
нет, тут мы передаём указатель на первый элемент. Собственно так массивы в функцию и передаются.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,917
Записей в блоге: 2
Завершенные тесты: 1
18.11.2012, 21:11     Что значит char c[10] #24
Цитата Сообщение от time123 Посмотреть сообщение
(весь массив) по значению?
забудьте про "по значению".
time123
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 53
19.11.2012, 03:10  [ТС]     Что значит char c[10] #25
хм... а получается при вызове функции указывается только так string_length(title) или можно вызвать к примеру так string_length(*title) или так string_length(&title) (я не про этот пример а вообще), так тоже делается да?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,917
Записей в блоге: 2
Завершенные тесты: 1
19.11.2012, 03:14     Что значит char c[10] #26
Цитата Сообщение от time123 Посмотреть сообщение
хм... а получается при вызове функции указывается только так string_length(title) или можно вызвать к примеру так string_length(*title) или так string_length(&title) (я не про этот пример а вообще), так тоже делается да?
Все зависит от целей, которые Вы преследуете.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
19.11.2012, 03:19     Что значит char c[10] #27
Цитата Сообщение от time123 Посмотреть сообщение
string_length(title) или можно вызвать к примеру так string_length(*title)
ты вообще знаешь разницу между title и *title?
Cкажи, а то я подозреваю, что ты думаешь, что знаешь, но это не так.
time123
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 53
20.11.2012, 00:20  [ТС]     Что значит char c[10] #28
знаю, *title это будет разыменование указателя, то есть обращение к значению переменной, на которую он указывает... в общем проехали.

Добавлено через 16 минут
забудьте про "по значению".
ну вот зачем вы так? читаю

http://www.codenet.ru/progr/cpp/Try-Catch-Throw.php

В случае, если "кидаются" данные нестандартного типа (экземпляры определенных вами классов, структур и т.д.), лучше "ловить" их по ссылке, иначе вся "кидаемая" переменная будет скопирована в стек вместо того, чтобы просто передать указатель на нее.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,917
Записей в блоге: 2
Завершенные тесты: 1
20.11.2012, 00:22     Что значит char c[10] #29
Цитата Сообщение от time123 Посмотреть сообщение
ну вот зачем вы так? читаю
а что такое ссылка?
time123
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 53
20.11.2012, 18:36  [ТС]     Что значит char c[10] #30
ну это альтернативное имя для переменной. я к тому что можно ведь так указать

то есть в таком случае

catch(string text) { }

видимо будет скопирована строка...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2012, 18:57     Что значит char c[10]
Еще ссылки по теме:

Что значит ->? C++
C++ Что означает такая запись char *smt=new char[1]?
C++ Что значит две звездочки у char?

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,917
Записей в блоге: 2
Завершенные тесты: 1
20.11.2012, 18:57     Что значит char c[10] #31
Цитата Сообщение от time123 Посмотреть сообщение
catch(string text) { }
в таком случае будет создана новая строка на основе переданной.

И еще раз говорю, забудьте слова "по значению" и "по ссылке", C++ это не delphi и не Visual Basic
Yandex
Объявления
20.11.2012, 18:57     Что значит char c[10]
Ответ Создать тему
Опции темы

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