Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2013, 21:55   #1
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию Что означают * и ^ в с++

Если позволите,то такой вот тупой вопрос.Гугл просто не выдает конкретную информацию.Кому не сложно,поясните.
В чем отличие TCHAR и TCHAR* ,и почему TCHAR* var=TCHAR var[]
Насчет указателей вроде понятно,Pointer=PVOID
А вот со скворечником тоже не понимаю, почему надо писать String ^
calypso вне форума Ответить с цитированием
Старый 14.04.2013, 22:11   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
В чем отличие TCHAR и TCHAR*
TCHAR - это просто символ юникода.
TCHAR* это указатель на символ юникода. Обычно именно указатели характеризуют строку с текстом, поэтому
Цитата:
почему надо писать String ^
Потому что в CLR нужно отделять котлеты от мух. .NET не любит небезопасную работу с открытыми указателями.
Где-то тут уже была тема про циркумфлекс-инструкцию. Она кажись говорит о том что этот объект будет управляться .NET-ом (уборщиком мусора к примеру) Вот жаль запамятовал где...
I'm learning to live...

Последний раз редактировалось Stilet; 14.04.2013 в 22:16.
Stilet вне форума Ответить с цитированием
Старый 14.04.2013, 22:36   #3
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию

А чем тогда тогда отличается указатель * от PVOID? Звездочка на символ,а PVOID на переменную?
calypso вне форума Ответить с цитированием
Старый 14.04.2013, 22:38   #4
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию

И ещё пробелы в матчасти: допустим переменная определена как указатель,значит когда мы в функции используем знак & ,то это означает как раз выдрать сами данные из указателя? Так или я опять не понимаю
calypso вне форума Ответить с цитированием
Старый 14.04.2013, 22:43   #5
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от calypso Посмотреть сообщение
А чем тогда тогда отличается указатель * от PVOID? Звездочка на символ,а PVOID на переменную?
А вы посмотрите на PVOID - тот же * в виде typedef void* PVOID

Последний раз редактировалось waleri; 14.04.2013 в 22:49.
waleri вне форума Ответить с цитированием
Старый 15.04.2013, 00:03   #6
kineziz
Форумчанин
 
Регистрация: 22.12.2011
Сообщений: 378
По умолчанию

Цитата:
Сообщение от calypso Посмотреть сообщение
И ещё пробелы в матчасти: допустим переменная определена как указатель,значит когда мы в функции используем знак & ,то это означает как раз выдрать сами данные из указателя? Так или я опять не понимаю
Код:
void* Test = &a;
Тут & - взятие адреса переменной а и запись его в указатель Test

&Test

& - взятие адреса указателя

int b = *Test;
эквивалентно
int b = a;
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
kineziz вне форума Ответить с цитированием
Старый 15.04.2013, 10:52   #7
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
В чем отличие TCHAR и TCHAR*
Посмотрите последний пост в этой теме. Надеюсь, это прояснит вопрос.
Цитата:
почему TCHAR* var=TCHAR var[]
Потому что это практически одно и то же: указатель на первый элемент (одномерного) массива неизвестной длины.
Цитата:
А вот со скворечником тоже не понимаю, почему надо писать String ^
В языке C++ нет такой конструкции. Эта конструкция языка программирования C++.NET, который немного внешне похож на C++, но заметно отличается от него. ^ в C++.NET обозначает "указатель на объект, управляемый .NET машиной". Это не обычный указатель: он всегда указывает на память в куче, его численное значение может быть изменено в произвольный момент выполнения программы, для него не требуется вызывать какую-либо версию delete, он заведомо безопасно может быть приведён к типу System :: object... ну, и ещё сколько-то особенностей, о которых я не вспомнил.
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что означают функции? Ivannikov-Vlad Общие вопросы Delphi 6 07.04.2013 15:43
что означают опции TIdHTTPOption iwrowo Работа с сетью в Delphi 0 04.11.2012 17:20
Что означают? Ramazan05duldug Паскаль, Turbo Pascal, PascalABC.NET 1 18.07.2011 13:45
что означают ... в этом коде? Rondo Помощь студентам 1 28.01.2011 11:45
Что означают в Скилабе ковычки? Регина0989 Помощь студентам 6 16.02.2010 08:38