函数调用本质是值传递(实参赋值给形参)
定义的时候为形参
引用的时候为实参
数组传递时候是弱化为指针的


**
指针与动态内存申请
输入5
申请5*sizeof(int)=20个字节
数组一开始定义好就确定下来了 数组是放置在栈空间 栈的效率高
堆 需要借 申请
程序是放在磁盘上的有序的指令集合
程序启动起来时候才叫进程
Void 什么都不需要返回
void* 返回的是无类型指针
malloc动态申请
**

在puts结束后 需要释放
free§;//释放空间,p的值必须和malloc最初相同
p = NULL;//如果不把P值赋为null,那么p就是野指针
**
栈空间与堆空间的差异
print_stack()//栈空间
print_malloc()//堆空间
**


为什么到后面会乱码
不能让指针变量 指向一个栈空间的变量 栈空间会随着函数的执行结束而释放

堆空间 堆空间不会随子函数的执行结束而释放 必须自己free
本文探讨了指针与动态内存申请的关系,解释了栈空间和堆空间的区别。在函数调用中,数组传递实际上是指针的弱化形式。通过`malloc`动态申请内存,需要注意在使用完毕后释放,避免产生野指针。栈空间在函数执行结束后会被自动释放,而堆空间需手动使用`free`进行释放。
2888

被折叠的 条评论
为什么被折叠?



