数组的基本认识和内存分配

本文介绍了栈内存的工作原理,包括数据的入栈和出栈操作。接着讨论了#define和const定义常量的区别,指出#define在预处理阶段进行替换,不进行类型检查,而const在运行时占用数据段,支持类型检查。文章还探讨了数组作为函数参数的使用方式,以及sizeof()函数的用途。最后,详细阐述了数组和指针的关系,以及字符'0'、''和整数0的差异,并分析了数组内存分配的时机和大小确定。
摘要由CSDN通过智能技术生成

1.是如何分配内存的

栈可以算是受限的线性表。它只允许在表的一端进行数据的输入,删除操作。放入数据的入口即为栈的栈顶,将数据压入栈后,数据所存在的位置即为栈的栈。它在进行插入和删除工作时必须从栈顶元素入手,即就是先进栈的元素后出栈,即先进后出。添加新元素时,可直接将新元素压在栈顶元素之上,而此时的新元素会代替之前的栈顶元素成为栈顶元素。而进行删除操作时,也必须从栈顶元素入手,如需删除的是栈顶元素,则直接从栈中将栈顶元素取出,那么下一个相邻元素则成为栈顶元素,如果所要删除的数据是非栈顶元素,则需将此元素之前的元素依次取出,然后此元素就变成了栈顶元素,做法同上,然后再将之前取出的元素以取出时的逆顺序依次放入。

栈区是由编译器自动分配和释放,存放函数的参数,局部变量等,程序员无法控制。栈存储数据时是从高地址向底地址扩展的结构,是一块连续的内存区域。栈的大小也并不是无限大的,取决于栈的剩余空间,如果申请空间小于栈的剩余空间,则系统将会为申请空间分配内存,否则将报异常提示栈溢出。

2. 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值