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

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

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

Typedef - C++

20.11.2014, 16:46. Просмотров 355. Ответов 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 (C++):

typedef - C++
Сталкнулся с таким объвлением typedef __mpz_struct mpz_t; Не могу врубится что оно значит? ...

Typedef - C++
Доброго времени суток. Привожу вам отрывок из книги "C и Visual C++ 2008 для начинающих". В книге приведен пример объявления структуры с...

typedef - C++
double f(double x){ } typedef double (*TPF)(double); TPF fff = f; fff(10.0); как и почему это работает корректно, если в...

typedef - C++
Доброго времени суток, уважаемые программисты! Не могу понять несколько строк из примера учебника Дейтела. С первой строкой все понятно,...

typedef в c++ - C++
Здравствуйте! Нужно собрать полную информацию по оператору typedef в c++. Пока нашел, что typedef используется для задания новых...

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

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

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

Добавлено через 43 секунды
Как уже заметил коллега, у тебя будет const-переменная cstr типа char*
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2014, 18:21
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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