Форум программистов, компьютерный форум, киберфорум
Наши страницы

Несколько вопросов по указателям. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Расределенная обработка матриц http://www.cyberforum.ru/cpp-beginners/thread248324.html
Всем доброго времени суток. Хотелось бы узнать Ваше мнение и советы по поводу следующего задания: Необходимо реализовать систему распределенной обработки матриц. То есть предполагается наличие...
C++ Фактические и формальные параметры в C + + Помогите разработать набор подпрограмм в которых нужно продемонстрировать преимущества применения фактических и формальных параметров функций при решении задач различных направлений http://www.cyberforum.ru/cpp-beginners/thread248322.html
Лабораторные. C++
Очень нужна помощь помощь.Иначе могут отчислить.Пожалуйста кто чем может))
с задания на курсовой C++
Ввести два предложения.Поменять местами все непарные слова.
C++ Реализовать внешнюю функцию с именем make_mun() http://www.cyberforum.ru/cpp-beginners/thread248291.html
Структурой-парой называется структура с двумя полями, которые обычно имеют имена first и second. Требуется реализовать тип данных с помощью такой структуры. Во всех заданиях обязательно должны...
C++ Метод Шеннона-Фоне Помогите разобраться в этом методе:(,и составить простейшие приложение сжатия по этому метода на с++:(,заранее спасибо) подробнее

Показать сообщение отдельно
fermerius
0 / 0 / 0
Регистрация: 24.10.2010
Сообщений: 19
25.02.2011, 23:32  [ТС]
Спасибо всем огромное за ответы с объяснениями. И еще один вопрос по теме.

Отрывок из статьи про указатели.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
char *string_uppercase(char* string) 
 
{ 
   char *starting_address = string; // адрес string[0]; 
   while (*string) 
 
   { 
      if ((*string >= 'а') && (*string <= 'я')) *string = *string - 'a' + 'A'; 
      string++; 
   } 
   return(starting_address); 
} 
 
//Эта функция сохраняет и возвращает начальный адрес строки, 
//который позволяет вашим программам использовать функцию следующим образом: 
 
cout << String_uppercase("Привет, мир!") << endl;

1. Для чего стоит * перед именем функции ? Чтобы можно было ей возвратить значение целого массива символов ? Я правильно понимаю, что без * функции можно возвратить только один символ ?

2. В этой функции мы тоже (как и в примере ранее) передаем константную строку, но программа не ругается. В чем подвох ? Неужто в этом знаке " * " перед именем функции ?

3. И еще вопрос, что за махинации с указателем char *starting_address ? Я объясню как я понял, скажите если где-то пробел. Внутри функции мы объявляем еще один указатель char *starting_address, и он указывает туда же, куда указывает указатель *string (а он указывает на константкую строку). Далее производятся изменения с указателем на константную строку (ведь сама строка не может быть изменена). И вот тут дальше мне не понятно. Как можно изменять сам указатель если он лишь указывает ? И разве char *starting_address не изменится от этого ?

4. И еще один маленький ) Почему string++ а не *string++ ? Ведь именно *string показывает 1 символ, а string всю строку целиком ?



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