В книге я читал о C++ (C++ для чайников) есть раздел, в котором говорится следующее:C++ указатель на постоянную ошибку
int nVar = 10;
int* pVar = &nVar;
const int* pcVar = pVar; // this is legal
int* pVar2 = pcVar; // this is not
Книга затем продолжает объяснять:
The assignment pcVar = pVar; is okay -- this is adding the const restriction. The final assignment in the snippet is not allowed since it attempts to remove the const-ness of pcVar
Мой вопрос: почему последняя строка не является «законной». Я не понимаю, как это мешает «constness» pcVar. Благодарю.
'int pVar = & nVar' не является законным - вы преобразовываете целое число в указатель на целое число. Я подозреваю, что это опечатка, но вы можете не исправить ее. –
В этом коде нет назначений, и любая книга, которая ссылается на эти инициализации как таковые, не должна быть пригодной для чтения. – chris
На самом деле это так в книге. Я не знаю, является ли это опечаткой, но вопрос все еще имеет смысл, если я должен это исправить? – Iowa15