АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Передача аргументов по ссылке

Читайте также:
  1. IV. Государственные преступники третьего разряда, осуждённые к ссылке вечно в каторжную работу.
  2. IX. Государственные преступники восьмого разряда, осуждённые к лишению чинов, дворянства и к ссылке на поселение.
  3. V. Государственные преступники четвёртого разряда, осуждаемые к временной ссылке в каторжную работу на 15 лет, а потом на поселение.
  4. VI. Государственные преступники пятого разряда, осуждаемые к временной ссылке в каторжную работу на 10 лет, а потом на поселение.
  5. VII. Государственные преступники шестого разряда, осуждаемые к временной ссылке в каторжную работу на 6 лет, а потом на поселение.
  6. VIII. Государственные преступники седьмого разряда, осуждаемые к временной ссылке в каторжную работу на 4 года, а потом на поселение.
  7. X. Государственные преступники девятого разряда, осуждаемые к лишению чинов, дворянства и к ссылке в Сибирь.
  8. Банк аргументов для сочинений из художественной и публицистической литературы
  9. Банк аргументов к сочинению ЕГЭ
  10. Безвозмездная передача. Основные средства, полученные в дар
  11. Глава 41.Передача эстафеты
  12. Глава 7. Передача винт — гайка

В С++ возможна сокращённая запись приведённого выше фрагмента, не требующая непосредственной работы с указателями. Рассмотрим пример, в котором значение переменной n передаётся по ссылке. При передаче по ссылке вместо значения переменной функции передаётся ссылка на переменную. (Ссылка, по сути, является синонимом слова адрес).

// PointerVar3 - программа демонстрирующая

// вариант передачи значений по ссылке

#include <windows.h>

#include <stdlib.h>

#include <string.h>

#include <tchar.h>

#include <iostream>

#include <stdio.h>

using namespace std;

 

void fn(int& intArg)

{

// здесь значение intArg определено адресом аргумента

cout << "при обращении к функции fn(intArg) значение аргумента intArg = "

<< intArg << "\n";

intArg = 10;

cout << "в функции fn(intArg) значение аргумента intArg = "

<< intArg << "\n";

}

void parent(void)

{

int n1=0;

cout << "при обращении к функции parent() определяем значение n1 = "

<< n1 << "\n";

fn(n1); // так передаётся адрес n1 теперь n1 равно 10

cout << "после обращения к fn(n1) в функции parent() значение n1 = "

<< n1 << "\n\n";

}

void main()

{

SetConsoleCP(1251); // руссификация ввода

SetConsoleOutputCP(1251); // и вывода

int A = 10;

int* pA = &A;

cout << "значение аргумента A = " << A << "\n";

cout << "значение указателя рA = " << pA << "\n";

cout << "значение по адресу, определяемому указателем рA = "

<< *pA << "\n";

fn(A);

cout << "обращении к функции parent() значение аргумента pintArg = "

<< *pA << "\n";

parent();

}

В этом примере функция fn(A) получает не значение, а ссылку на переменную A и записывает значение 10 в переменную типа int,на которую ссылается intArg.


(1) Стефан Р. Дэвис. С++ для чайников. Диалектика, Москва, Санкт-Петербург, Киев, 2003.- 336 с.


1 | 2 | 3 | 4 | 5 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.)