"nihao"是一个字符串常量,存放在静态数据区,你把该字符串常量存放的静唯知态数据区的首地址赋值给了指针,明山颤所以fun函数退出时,该该字符串常量所在内存不会被回收,故能够通过指针顺利无误的访问。激败
创新互联公司-专业网站定制、快速模板网站建设、高性价比榆树网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式榆树网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖榆树地区。费用合理售后完善,10年实体公司更值得信赖。
但是如果你把char *add = arr;这句话去掉,然后改成return arr,那么就打印出错了!
因为你把一个字符串常量赋值给了一个局部变量(char []型数组),该局部变量存放在栈中,这样就有两块内容一样的内存,这是与前者最本质的区别,当fun函数退出时,栈要清空,局部变量的内存也被清空了,所以这时的函数返回的是一个已被释放的内存地址,所以打印出来的是乱码。
malloc分配的内脊橘档存不会在函数结束后自动回收,因此需要用伍拦free()手动回收。如樱乱不回收会造成内存泄漏问题。
“wawawa”是个常量,而不是变量,就更谈不上局部和全物没局之说了。你的程序只是戚蚂携将指针高伏指向了这个常量,所以P的内容是确定的。
分享名称:c语言中的函数回收 c语言函数返回是什么意思
文章源于:https://www.cdcxhl.com/article22/ddpojjc.html
成都网站建设公司_创新互联,为您提供域名注册、软件开发、企业网站制作、网站维护、服务器托管、微信小程序
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联