#include <iostream>
using namespace std;
void test02(int& c, int& d);
void test01() {
//普通变量引用
int a = 10;
int& b = a;
//int*b=&a;
cout << "b=" << b << endl;
//cout <<"b=" << *b << endl;
cout <<"a=" << a << endl;
//常量引用
const int num = 20;
int* pnum = (int*)#
*pnum = 200;
cout<<"num=" << num << endl;
//数组引用
int arr[10];
int (&pArr)[10]=arr;
//int* pArr=arr;
for (int i = 0;i<10;i++) {
pArr[i] = (i + 1) * 2;
cout <<"ar[i] = " << arr[i] << endl;
}
//参数传递
int c = 10;
int d = 20;
test02(c,d);
cout << "c =" << c << " d=" << d << endl;
}
void test02(int& c, int& d) {
int temp = c;
c = d;
d = temp;
}
//void test02(int *c,int *d){
// int temp=*c;
// *c=*d;
// *d=temp;
//}
//函数返回引用
int& fun1() {
int a = 10;
return a;
//第二次访问a的值会被释放掉
}
int& fun2() {
static int a = 10;
return a;
}
void test03() {
int& f1 = fun1();
cout << "f1=" << f1 << endl;
cout << "f1=" << f1 << endl;
int& f2 = fun2();
cout << "f2=" << f2 << endl;
cout << "f2=" << f2 << endl;
fun2() = 100;
cout << "f2=" << f2 << endl;
cout << "f2=" << f2 << endl;
}
//指针引用
struct Person {
int id;
};
//void allocateSpace(Person **p) {
// *p = new Person();
// (*p)->id = 20;
//}
void allocateSpace(Person*& p) {
p = new Person();
p->id = 20;
}
void test04() {
Person* p = NULL;
//allocateSpace(&p);
allocateSpace(p);
cout << "p.age = " << p->id << endl;
delete p;
}
int main()
{
test01();
test03();
test04();
system("pause");
return EXIT_SUCCESS;
}
C++ 变量、常量、指针基本引用方法(三)
最新推荐文章于 2024-07-08 21:23:20 发布