C和指针之数组和函数部分总结
发布日期:2021-06-29 14:10:31 浏览次数:2 分类:技术文章

本文共 653 字,大约阅读时间需要 2 分钟。

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

1、之前对函数参数传递指针没有理解到位,以为像传其它的数据一样,只是数据的一份拷贝,然后不修改原始的数据,函数参数如果是传递的指针,传递给函数是指针的一份拷贝,可以通过指针间接访问数据,从而得到修改原始数据,反正不能把指针变量本身传递给一个函数,
如果把这个函数里面的进行在堆区分配内存空间,只不过是指针的拷贝的这个指针分配了内存,如果不返回,编译器会自动分配和回收,无法使用,实际指针还是没有分配内存,如果想要想要给实际指针分配内存,我们可以在函数里面分配内存了然后return这个指针,或者用二级指针作为参数也行,二级指针分配的内存是真正给了指针变量本身,然后我们绝对不可以在函数返回堆区的指针,因为函数退出时,它的栈也就被清除了,之后其内容会被别的局部变量、函数调用保存的上下文等信息替换掉,所以返回的这个栈偏移就失去意义了。
2、之前不知道在函数参数中,声明数组可以不指定长度,不声明是合法的,因为函数不为数组元素分配内存,调用时把实参数组名里面的常量地址传给形参数组名,就是说形参数组名保存的就是实参数组名里面存的地址。这样在被调用函数内部,形参数组就指向了和实参数组名指向的同一个数组。
3、函数递归调用自己的时候,比如递归调用自己的时候下面还有值打印,这个值应该是当前调用的这个函数的值,而不是之前挂载的值,之前我这里理解不太深刻,后面在答辩文档中会给出相应的Demo.
4、之前不知道递归的开销非常大,因为返回调用自己会为局部变量分配内存空间,一般还是少用。

转载地址:https://chenyu.blog.csdn.net/article/details/78546653 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:C和指针之字符串之strlen、strcpy、 strcat、strcmp使用总结
下一篇:C和指针之auto和内存栈和register关键字

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月18日 02时25分38秒