C++基础学习DAY1-10 引用的使用方式

#define _CRT_SECURY_NO_WARNINGS
#include <iostream>
using namespace std;
//1、指针的引用
/*引用的本质 int i=5;
             int &ri=i;
             ri=8;
                        int* const pi=&i;*/
/*如果定义一个结构体类型的普通变量,可以不malloc动态申请内存,CPU会为这个结构体变量分配内存 
如果定义的是一个结构体的指针,CPU会为这个指针开辟内存,但是此时这个大小是4(如果是32位的CPU的话),
所以这个空间不足以存储结构体的数据成员,就会引发错误,此时必须要malloc申请一个,结构体类型大小的动态内存,用于数据成员存储使用
拓展一下,malloc是动态申请,调用后会根据虚拟映射表去找物理内存,此时内核会先产生一个请求内存异常,
然后根据这个异常再去为程序分配malloc的内存另外注意,调用malloc后一定要free,且在free掉之后要赋值NULL,这个操作是一对一的*/
struct Person
{
 int m_Age;
};
void allocatMemory(Person** p )//**p Person的对象 *p对象的指针 p指针的指针
{
 *p = (Person*)malloc(sizeof(Person));
 (*p)->m_Age = 100;
}
void test01()
{
 Person* p = NULL;
 allocatMemory(&p);
 cout << "p的年龄:" << p->m_Age << endl;
}
void allocatMemRef(Person*& p)
{
 p = (Person*)malloc(sizeof(Person));
 p->m_Age = 200;
}
void test02()
{
 Person* p = NULL;
 allocatMemRef(p);
 cout << "p的年龄:" << p->m_Age << endl;
}
//2、常量的引用
void test03()
{
 //int& ref = 10; 不合法
 const int& ref = 10;//加入const相当于编译器自动分配一个临时变量
 //ref = 10;
 int* p = (int*)& ref;
 *p = 1000;
 cout << "ref=" << ref << endl;
}
//常量的引用   修饰形参
void showValue(const int& val)
{
 cout << "value=" << val << endl;
}
void test04()
{
 int a = 10;
 showValue(a);
}
int main()
{
 //test04();
 system("pause");
 return EXIT_SUCCESS;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值