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

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

Войти
Регистрация
Восстановить пароль
 
nill
10 / 10 / 0
Регистрация: 16.08.2009
Сообщений: 417
#1

Что значит такое использование указателей - C++

22.12.2013, 14:20. Просмотров 430. Ответов 9
Метки нет (Все метки)

Разбираю прогу для клиент сервера и никак не могу понять что значит такое использование указателей

1)
C++
1
char buff[100];
потом в функцию передается в виде параметра такая запись
C++
1
&buff[0]
Что это значит ?

2)
C++
1
int len;
в функцию передается
C++
1
(char*)&len
А тут что и зачем непонятно вроде len переменная типа int что тут вообще происходит ?

3)
C++
1
2
3
4
char*    buff
int len;
 
buff = new char[len];
А тут что присваивается указателю buff объясните ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2013, 14:20
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Что значит такое использование указателей (C++):

Что значит такое объявление typedef int (*A) ( )? - C++
typedef int (*A) ( ) Как его понять? Есть варианты ответа А. Объявление типа, что являет показатель за переменную типа int Б....

Объяснить от чего зависит размер указателя и что такое арифметика указателей - C++
Уважаемые программисты, возник вопрос. По умолчанию указатель любого типа может иметь только 4 байта. Но взглянем на следующий код: ...

Работа с двумерными числовыми массивами. Использование указателей. Использование функций пользователя. - C++
Помогите пожалуйста!!!!!!! Сделать три варианта: первый вариант – передача данных между функциями с помощью глобального...

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами? - C++
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?

Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа? - C++
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?

Что такое хэндлер файла? Что такое файловый указатель? - C++
Что такое хэндлер файла? Что такое файловый указатель?

9
palva
3092 / 2226 / 375
Регистрация: 08.06.2007
Сообщений: 8,123
Записей в блоге: 4
22.12.2013, 14:26 #2
1) адрес первого элемента массива. Можно было бы написать просто buff.
2) преобразование типа int* в тип char*
3) После выделения памяти ее адрес присваивается указателю buff
1
nill
10 / 10 / 0
Регистрация: 16.08.2009
Сообщений: 417
22.12.2013, 14:35  [ТС] #3
palva,
2) преобразование типа int* в тип char*
Но тут же обычный int у переменной, не int*
И если на пальцах к примеру
int len=7;

передавая в функцию параметр
(char*)&len

будет то же самое что и
char buf[1];
buf[0]="7"; ?


3) После выделения памяти ее адрес присваивается указателю buff
Это не очень понятно если на пальцах то что происходит ?
int опять преобразуется в char или что ?
0
palva
3092 / 2226 / 375
Регистрация: 08.06.2007
Сообщений: 8,123
Записей в блоге: 4
22.12.2013, 14:39 #4
Цитата Сообщение от nill Посмотреть сообщение
Но тут же обычный int у переменной, не int*
У переменной int, берем адрес - получаем int* далее преобразовываем.

Добавлено через 1 минуту
Цитата Сообщение от nill Посмотреть сообщение
будет то же самое что и
char buf[1];
buf[0]="7"; ?
buf[0]="7"; не должно компилироваться. Ошибка.
1
nill
10 / 10 / 0
Регистрация: 16.08.2009
Сообщений: 417
22.12.2013, 14:57  [ТС] #5
palva,
C++
1
2
char buf[1];
buf[0]='7'; ?
ну да нужно однойные кавычки, но это тоже самое что и (char*)&len ?
C++
1
buf=(char*)&len;
выдает ошибку
0
palva
3092 / 2226 / 375
Регистрация: 08.06.2007
Сообщений: 8,123
Записей в блоге: 4
22.12.2013, 15:14 #6
Нет, это не одно и то же.
Цитата Сообщение от nill Посмотреть сообщение
выдает ошибку
а также сообщает вам, в чем эта ошибка заключается.
1
nill
10 / 10 / 0
Регистрация: 16.08.2009
Сообщений: 417
22.12.2013, 16:05  [ТС] #7
palva,
да теперь понял

еще вопрос остался без ответа
3) После выделения памяти ее адрес присваивается указателю buff
Это не очень понятно если на пальцах то что происходит ?
int опять преобразуется в char или что ?
0
palva
3092 / 2226 / 375
Регистрация: 08.06.2007
Сообщений: 8,123
Записей в блоге: 4
22.12.2013, 16:18 #8
Цитата Сообщение от nill Посмотреть сообщение
int опять преобразуется в char или что ?
C++
1
buff = new char[len];
Здесь нет никаких преобразований. new char возвращает char* переменная buff имеет тот же тип char*.
1
nill
10 / 10 / 0
Регистрация: 16.08.2009
Сообщений: 417
22.12.2013, 16:57  [ТС] #9
palva,
buff = new char[len];

Здесь нет никаких преобразований. new char возвращает char* переменная buff имеет тот же тип char*.
А что в итоге будет в buff ?
значение из len только преобразованное из int в char ?
0
palva
3092 / 2226 / 375
Регистрация: 08.06.2007
Сообщений: 8,123
Записей в блоге: 4
22.12.2013, 17:05 #10
Цитата Сообщение от nill Посмотреть сообщение
А что в итоге будет в buff ?
Указатель на выделенную память длины len. Смотрите описания оператора new.
1
22.12.2013, 17:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2013, 17:05
Привет! Вот еще темы с ответами:

Пожалуйста обьясните что вообще это такое "использование циклов с предпосылками и постпосылками" - C++
Пожалуйста обьясните что вообще это такое "использование циклов с предпосылками и постпосылками" ?

Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них - C++
Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них пожалуйста.

использование указателей - C++
Должна быть разработана программа с меню с использованием указателей: 1. Изменить порядок следования элементов в массиве так, чтобы...

Использование указателей - C++
Не могли бы вы показать как решить это через указатели. Решение правильное. #include <iostream> #include <cstring> using namespace...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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