C和指针之数组和函数部分总结

这篇博客总结了C语言中关于指针、数组和函数的要点。内容包括:函数参数传递指针的理解,数组作为函数参数的特性,递归调用的开销,可变参数列表的使用,以及对数组名、指针、内存管理和预定义关键字如`auto`、`register`、`volatile`、`const`和`NULL`的深入探讨。同时提到了`assert`宏的使用和回溯算法的应用。
摘要由CSDN通过智能技术生成

函数和数组2个章节部分学习总结


1、之前对函数参数传递指针没有理解到位,以为像传其它的数据一样,只是数据的一份拷贝,然后不修改原始的数据,函数参数如果是传递的指针,传递给函数是指针的一份拷贝,可以通过指针间接访问数据,从而得到修改原始数据,反正不能把指针变量本身传递给一个函数,
如果把这个函数里面的进行在堆区分配内存空间,只不过是指针的拷贝的这个指针分配了内存,如果不返回,编译器会自动分配和回收,无法使用,实际指针还是没有分配内存,如果想要想要给实际指针分配内存,我们可以在函数里面分配内存了然后return这个指针,或者用二级指针作为参数也行,二级指针分配的内存是真正给了指针变量本身,然后我们绝对不可以在函数返回堆区的指针,因为函数退出时,它的栈也就被清除了,之后其内容会被别的局部变量、函数调用保存的上下文等信息替换掉,所以返回的这个栈偏移就失去意义了。


2、之前不知道在函数参数中,声明数组可以不指定长度,不声明是合法的,因为函数不为数组元素分配内存,调用时把实参数组名里面的常量地址传给形参数组名,就是说形参数组名保存的就是实参数组名里面存的地址。这样在被调用函数内部,形参数组就指向了和实参数组名指向的同一个数组。


3、函数递归调用自己的时候ÿ

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码莎拉蒂 .

你的鼓励是我最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值