c+函数的内存和引用

黑马程序员匠心之作-C++核心编程-C++中的内存和引用

     学习最快的方法就是给别人讲解,把博客当作我的学生啦,听课过程中归纳整理一下:

**1.内存四区

1 代码区(共享和只读):局部变量(在函数内部定义的是局部变量)
2 全局区:全局变量,静态变量(static关键字),常量

在这里插入代码片

3 栈区(编译器分配释放):函数形参、局部变量(指针是局部变量)

int* func(){
int a=10;//局部变量,存放在栈区,栈区的数据在函数执行后自动释放
return &a//奴要返回局部变量地址
}

int main(){
int *p=func();
count<< "*p"<<endl
system("pause")
}

4 堆区:

//用new,在堆区开辟新内存
//
int * func(){
int *p=new int(10);//指针接受堆区的地址
return p;}
int main(){
int *p=func();
delete p;
cout<< *p<<endl;
}
//delete手动释放

```cpp
int main(){
int *arr=new(int[10]);
for (int i=0;i<10;i++)
{arr[i]=i=100;}
for(int i=0;i<10;i++)
{cout<< arr[i]<<endl;}
delete[] arr;
system("pause")
return 0;
}

**2.引用

语法:数据类型 &别名=原名
int &b=a;
引用可以形参修饰实参
引用的本质在c++内部实现是一个指针常量

 1.值传递
void myswap01(int a,int b){
int temp=a;
a=b;
b=temp
}

2.地址传递
void myswap01(int *a,int *b){
int temp=*a;
*a=*b;
*b=temp
}
2.引用
void myswap03(int &a,int &b){
int temp=a;
a=b;
b=temp

int main(){
int a=10;
int b=20;
myswap03(a,b)
}
}

常量引用
使用场景用来修饰形参防止误操作

const int &ref =10;//只读不可修改
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值