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

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

Войти
Регистрация
Восстановить пароль
 
iwsyhgia
1 / 1 / 0
Регистрация: 11.01.2014
Сообщений: 51
#1

Typedef - C++

20.11.2014, 16:46. Просмотров 341. Ответов 2
Метки нет (Все метки)

Наткнулся на пример ниже:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
typedef char *cstring;
 
//Каков тип переменной cstr в следующем объявлении:
 
const cstring cstr;
 
//Ответ, который кажется очевидным:
 
const char *cstr
 
//Однако это неверно. Спецификатор const относится к cstr, поэтому правильный ответ – константный указатель на char:
 
char *const cstr;
Правильно ли я понимаю, что компилятор интерпретирует тип cstring как value-тип и поэтому const относится к содержимому ссылки?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2014, 16:46     Typedef
Посмотрите здесь:

Typedef и функция - C++
есть такая функция void implicitCurve(const double* x, double* y, double* Df) { // funkcyja f(a,b,c) =...

работа с typedef - C++
Объясните пожалуйста в чем смысл конструкции: typedef struct _XMFLOAT2 { FLOAT x; FLOAT y; } XMFLOAT2; typedef создает...

Оператор typedef - C++
Имеет ли смысл говорить о времени жизни, области видимости и о связывании для типов (НЕ ПЕРЕМЕННЫХ), которые определяются этой директивой?

Про typedef - C++
Читаю книгу Дейтела наткнулся на программу, в которой не могу понять одну деталь, а именно смотрим в комментариях ниже. #include...

Спецификатор typedef - C++
Не могу понять как работает спецификатор typedef... Прочитал про него достаточно инфы и он везде сравнивается с директивой #define с той...

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

не видит typedef - C++
вот примерно что в первом - a.h файле class a { enum eSomeEnum { a = 0, b, //... и так далее ...

Использование Typedef - C++
Читал книгу по паттернам и натолкнулся на такой пример в паттерне command: template<class Receiver> class SimpleCommand : public...

Наследование typedef'a - C++
Итак, в некотором классе typedef'ом определен тип: template<typename T> class Shape { public: typedef T sclar; }; ...

typedef и vector - C++
typedef int array_Llist_upgrade; std::vector <array_Llist_upgrade> Llist_upgrade; array_Llist_upgrade array_Llist_upgrade_tmp; ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mss307
118 / 118 / 25
Регистрация: 14.12.2013
Сообщений: 352
20.11.2014, 17:09     Typedef #2
я так понимаю, что cstring воспринимается как тип, а переменная этого типа становится const, и ее содержимое нельзя менять, т.е. указатель не может хранить другой адрес.
Evg
Эксперт CАвтор FAQ
17469 / 5707 / 362
Регистрация: 30.03.2009
Сообщений: 15,669
Записей в блоге: 26
20.11.2014, 18:21     Typedef #3
const будет относиться к переменной, т.к., грубо говоря, const, грубо говоря, относится к справа стоящей ЯВНОЙ звёздочке или имени переменной. В твоём случае звёздочка неявная (спрятана в тип) cstring, а потому const относится к cstr, а не cstring

http://www.cyberforum.ru/blogs/18334/blog87.html

Добавлено через 43 секунды
Как уже заметил коллега, у тебя будет const-переменная cstr типа char*
Yandex
Объявления
20.11.2014, 18:21     Typedef
Ответ Создать тему
Опции темы

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