|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Передача аргументов по ссылкеВ С++ возможна сокращённая запись приведённого выше фрагмента, не требующая непосредственной работы с указателями. Рассмотрим пример, в котором значение переменной 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 с. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.) |