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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 86, средняя оценка - 4.60
Zubrikan
Сообщений: n/a
#1

Тип char и указатели - C++

13.08.2008, 17:05. Просмотров 10822. Ответов 7
Метки нет (Все метки)

Вопрос...
Тип может хранить только символы, или строки тоже?
Если только символы, то почему этот код работает?:
...
Код
void my_func(char* my_string)
{
for(int x = 0; x < 10; x++)
{
std::cout << *(my_string + x) << "\n";
}
int main()
{
my_func("Hello World!");
return 0;
}
?? И как вообще это происходит? Функция же должна принимать в качестве аргумента указатель на строку. а мы передаем строку... Объясните плиз про то как это происходит.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2008, 17:05     Тип char и указатели
Посмотрите здесь:

указатели char - C++
Уважаемые, помогите разобраться с указателями. Вот пример. Есть класс Class P{ public: void SetName(name){ ...

Указатели char * - C++
Добрый день, с момента создания прошлой темы про указатели я разобрался в ней. Понял, что конкретно не понятно - когда в функцию передается...

Указатели на char - C++
Помогите разобраться в чём ошибка и как можно проиллюстрировать её. Было написано: 1) char *s; s = &quot;Hello&quot;; s = 'a'; 2) ...

Указатели на char - C++
Доброго времени суток! Никак не могу разобраться с указателями :( Базовые вещи аля подобных примеров int z = 1; int *ptrz =&amp;z; ...

Массив символов char и указатели - C++
В общем нужно сохранить путь к диску в переменную, что бы потом использовать в _findfirst Но сколько бы я не бился над этим, ничего не...

Указатели char* - конкатенация без <string.h> - C++
char *pp,*p,*s1; // p и s1 имеют свои значения, по сути необходимо из &quot;p&quot; сделать соединение &quot;s1+p&quot; (строго без &lt;string.h&gt; ! это...

Указатели при работе со строками char* - C++
Помогите разобраться с указателями #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; int main() { char*...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MAcK
Комбайнёр
1558 / 655 / 21
Регистрация: 27.05.2008
Сообщений: 2,535
13.08.2008, 17:13     Тип char и указатели #2
Всё очень просто, тебе передаётся адрес первого символа, а потом ты шагаешь к следующему адресу, а в нём следующий символ ...
Zubrikan
Сообщений: n/a
13.08.2008, 17:23     Тип char и указатели #3
Не совсем понял...
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
13.08.2008, 17:34     Тип char и указатели #4
К адресу, хранящемуся в my_string прибавляется х. И с полученного адреса звездочкой берем значение.
Читай про адресную арифметику, тогда поймешь. Арифметику в первом классе надо проходить...
Lord_Voodoo
Супер-модератор
8584 / 2184 / 61
Регистрация: 07.03.2007
Сообщений: 10,868
Завершенные тесты: 1
13.08.2008, 17:35     Тип char и указатели #5
почитай тут, вроде бы написано доходчиво - http://programmersclub.ru/20/
Счастливчик
19 / 18 / 0
Регистрация: 04.08.2008
Сообщений: 31
13.08.2008, 18:59     Тип char и указатели #6
Строку можно обявить разными способами:

1)string moya_stroka;
такой способ позволяет легко соединять строки не используя спецфункции
buffer = str1 + str2 +str3

2)char moya_stroka[] = "Лопух"
строка объявляется как массив символов.
Переменная moya_stroka может использоваться как указатель на первый символ в массиве. И, одновременно, при помощи инструкции сout << moya_stroka можно вывести всю строку сразу

3)Когда ты пишешь char* my_string, то ты объявляешь СТРОКУ символов (которая, вообще говоря, может содержать один символ типа char).


способы 2 и 3 имеют равные возможности работы состроками
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
13.08.2008, 19:06     Тип char и указатели #7
1) string - это класс. отдельный разговор, к char* относящийся мало.
3) Не строку. А указатель. И даже не на строку, точнее, а на буфер. В char* я могу записать много чего...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.08.2008, 21:09     Тип char и указатели
Еще ссылки по теме:

Строки (массив char), указатели. Не могу понять логику! Help! - C++
Вообщем проблема в том что выводятся лишние символы в строках.. хотя в них есть признак окончания строк - нулевой байт я новичок в С...

тип char - C++
Подскажите плз, почему сортировка не работает с типом char. С типом int, элементы сортируются. void InsertSort(v1 a) { for (char i...

FindWindow() и тип char* - C++
Здравствуйте. Наверняка вопрос уже много раз задавался, но долгий и муторный поиск не помог. Вот код (он учебный, просто хочу понять...

Тип char принимает за integer - C++
Приветствую всех. Вот в этом простейшом коде, на char в ошибках пишет что-то о int. Помогите плиз. Решил изучить С++, отойдя от питон,...

Тип char* к LPCTSTR возможно ли? - C++
А возможно ли преобразовать тип char* к LPCTSTR? Если да то как?


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

Или воспользуйтесь поиском по форуму:
Счастливчик
19 / 18 / 0
Регистрация: 04.08.2008
Сообщений: 31
13.08.2008, 21:09     Тип char и указатели #8
Цитата Сообщение от Vourhey
string - это класс. отдельный разговор, к char* относящийся мало
Конечно отдельный. Но в контексте работы со строками разве нельзя их сравнить?
Цитата Сообщение от Vourhey
Не строку. А указатель. И даже не на строку, точнее, а на буфер. В char* я могу записать много чего...
У меня ничего нет в книге о буферах)) Напиши пару маленьких примеров(как в
char* можно записать ещё что то?)
Yandex
Объявления
13.08.2008, 21:09     Тип char и указатели
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru