游戏开发 c++基础学习 笔记摘要第13天

字符常量区 常量:100 ,‘a’,"abc"字符串也在常量区
静态全局区 存储全局变量和静态变量
栈区 局部变量从定义时开始分配内存,出了作用域系统回收内存
临时内存
堆区
程序手动申请,手动释放

局部变量:形参和函数内部定义的变量
局部变量会隐藏在外层作用域中同名的其他所有声明中
自动对象:只存在于块执行期间的对象(形参)
局部静态变量:一经创建一直存在到程序结束才释放

static int sum=0;//静态变量,从程序开始系统分配内存,到程序结束,系统回收内存,只会初始化依次

如果形参是引用类型,它将绑定到对应实参上,否则,将实参的值拷贝赋给形参
static全局变量和普通全局变量区别
static全局变量的作用域只在当前文件,普通全局变量作用域在所有文件,需要extern声明
static局部变量和普通局部变量区别
static局部变量是从程序开始到程序结束,普通局部变量从进入函数开始,出函数释放内存

int *p= new int ;//手动申请内存,存放在堆区
delete p;//手动释放  手动申请的内存一定要释放
//p内存释放后,仍指向地址,所以delete p后要将指针置于0(p=nullptr)

野指针:释放后,没有置空

动态数组

int *p2=(int *)malloc(sizeof(int)*5);
free(p2);//释放内存
p2=(int *)realloc(p2,sizeof(int)*2);
//realloc:重新分配内存,第一个参数:要重新分配的指针,第二个参数:重新分配的大小
calloc (5,sizeof(int));//第一个参数:要申请的个数,第二个参数:每个的大小
int*p4=(int*)calloc(5,sizeof(int));
free(p4);
//以上三种函数返回类型都是void*型所以要进行强转

void*:可以表示任意类型地址,不能自增自减,因为便宜单位不确定

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值