1. 程式人生 > >將引用作為函式引數

將引用作為函式引數

引用經常被用作函式引數,使得函式中的變數名成為呼叫程式中的變數別名。這種傳遞引數的方法稱為按引用傳遞。按引用傳遞允許被呼叫的函式能夠訪問呼叫函式中的變數。C++新增這項特性是對C語言的超越,C語言只能按值傳遞。按值傳遞導致被呼叫函式使用呼叫程式的值得拷貝。當然,C語言也允許避開按值傳遞的限制,採用按指標傳遞的方式。

程式碼:

#include <stdio.h>  
#include <iostream>

using namespace std;

void TestAddress1(int p, int& a, int b)
{
	cout << "TestAddress1" << endl;
	cout << "p address:" << &p << "; p value:" << p << endl;
	cout << "a address:" << &a << "; a value:" << a << endl;
	cout << "b address:" << &b << "; b value:" << b << endl;

	int* c = &b;
	c -= 2;
	cout << "c address:" << c << "; c value:" << *c << endl;
}

void TestAddress2(int* a, int b)
{
	cout << "TestAddress2" << endl;
	cout << "a address:" << &a << "; a value:" << *a << endl;
	cout << "b address:" << &b << "; b value:" << b << endl;
}

int main()
{
	int* a = new int[5];
	memset(a, 0, sizeof(int)* 5);
	a[0] = 123;
	int b = 2;
	int c = 3;

	cout << "out a address:" << &a << endl;
	cout << "out b address:" << &b << endl;
	cout << "out c address:" << &c << endl;

	cout << "-----------------" << endl;

	TestAddress1(b, b, c);

	cout << "-----------------" << endl;

	TestAddress2(a, b);
}