Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
*pintvar = 100. С не вызывает никаких проблем, поскольку C++ известно, что<br />
pintVar указывает на целочисленную переменную и приводит 100.0 перед присвоением<br />
к тому же типу.<br />
Jtefteqana цказшпелей<br />
Одним из путей использования указателей является передача аргументов функции.<br />
<strong>Для</strong> того чтобы понять всю важность этого метода, необходимо разобраться, как происходит<br />
передача аргументов функциям.<br />
Передача аргументов по значению<br />
Вы мсгли заметить, что обычно нельзя изменить значение переменной, которая<br />
передавалась функции как аргумент. <strong>Р</strong>ассмотрим следующий фрагмент кода:<br />
void fn(intArg)<br />
{<br />
int intArg = 10;<br />
//здесь значение intArg равно 10<br />
}<br />
void parent(void)<br />
{<br />
int nl = 0;<br />
fn(nl);<br />
// здесь nl равно 0<br />
}<br />
Функция parent () инициализирует переменную nl нулем. После этого значение<br />
nl передается в качестве аргумента функции fn (). В f n () переменной intArg присваивается<br />
значение 10. тем самым в fn() осуществляется попытка изменить аргумент<br />
функции. Поскольку в качестве аргумента выступает переменная nl, можно<br />
ожидать, что после возврата в parent () эта переменная должна иметь значение 10.<br />
Тем не менее nl остается равной 0.<br />
Дело и том, что C++ передает функции не переменную, а значение, которое<br />
в момент вызова функции находится в переменной. При вызове функции происходит<br />
вычисление значения передаваемого функции выражения, даже если это<br />
просто переменная.<br />
Обычно, экономя слова, многие говорят что-то вроде "передаем переменн<br />
х<br />
ФУ ИК Ц ИИ f n O "• На самом деле это означает, что функции передается<br />
значение выражения х.<br />
Передача значений указателей<br />
Указатель, как и любая другая переменная, может быть передан функции в качестве<br />
аргумента.<br />
void fn(int* pintArg}<br />
{<br />
*pintPrg = 10;<br />
void parent(void)<br />
{<br />
int r. - 0;<br />
Глава 8. Первое знакомство с указателями в C++ 93