Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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

Цитата:
В чем отличие 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
Репутация: 10
По умолчанию

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

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

Цитата:
Сообщение от 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
Репутация: 27

icq: 576-319-398
skype: NeoProgrammer
По умолчанию

Цитата:
Сообщение от 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
Репутация: 655
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


07:06.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.