函数调用本质是值传递(实参赋值给形参)
定义的时候为形参
引用的时候为实参
数组传递时候是弱化为指针的
**
指针与动态内存申请
输入5
申请5*sizeof(int)=20个字节
数组一开始定义好就确定下来了 数组是放置在栈空间 栈的效率高
堆 需要借 申请
程序是放在磁盘上的有序的指令集合
程序启动起来时候才叫进程
Void 什么都不需要返回
void* 返回的是无类型指针
malloc动态申请
**
在puts结束后 需要释放
free§;//释放空间,p的值必须和malloc最初相同
p = NULL;//如果不把P值赋为null,那么p就是野指针
**
栈空间与堆空间的差异
print_stack()//栈空间
print_malloc()//堆空间
**
为什么到后面会乱码
不能让指针变量 指向一个栈空间的变量 栈空间会随着函数的执行结束而释放
堆空间 堆空间不会随子函数的执行结束而释放 必须自己free