【c++】main函数以及内存分区

main函数标准写法

main函数又称主函数,c程序唯一的入口
在C的标准文档里对main函数的描述为

int main(void)
int main(int argc, char *argv[]) // char *argv[]可以写成char **argv

argc(argument counter)是提供给主函数的参数个数,
argv(argument value)第二个是参数的字符串数组的指针。

在C++标准文档里对main函数的描述为:

int main() { /* … */}
int main(int argc, char *argv[]) {/ **/}

参考:探寻main函数的标准写法,以及获取main函数的参数、返回值

内存申请分区

程序运行时,内存分为四大区
1.代码区:存放函数体内的二进制代码。
2.数据区:也称全局区或者静态区,存放全局的东西,比如全局变量,静态变量以及常量。
3.栈区:由编译器自动分配和释放,存放函数参数,局部变量等,不需要时系统会自动清除。
4.堆区:由程序员分配释放,若程序员未释放,则程序结束之后,编译器自动释放。c++中可以用new在堆区中开辟数据。

在这里插入图片描述
在执行完func()函数以后,指针变量p保存了a的首地址,但是由于a定义在堆区,地址上的常量值已经被释放了
参考 C++ 学习(九)内存分区(代码区、全局区、栈区、堆区)

变量在函数内定义时,如main函数(main函数也是一种函数,作为程序入口),从栈空间申请内存进行存储。进程创建时初始化栈空间,大小固定。
变量在函数体外定义时,申请的内存来自数据段,内存大小按需分配,可以自由增长。
较大的变量,如数组,可以定义在堆区。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值