大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
"nihao"是一个字符串常量,存放在静态数据区,你把该字符串常量存放的静唯知态数据区的首地址赋值给了指针,明山颤所以fun函数退出时,该该字符串常量所在内存不会被回收,故能够通过指针顺利无误的访问。激败
创新互联公司-专业网站定制、快速模板网站建设、高性价比榆树网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式榆树网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖榆树地区。费用合理售后完善,10年实体公司更值得信赖。
但是如果你把char *add = arr;这句话去掉,然后改成return arr,那么就打印出错了!
因为你把一个字符串常量赋值给了一个局部变量(char []型数组),该局部变量存放在栈中,这样就有两块内容一样的内存,这是与前者最本质的区别,当fun函数退出时,栈要清空,局部变量的内存也被清空了,所以这时的函数返回的是一个已被释放的内存地址,所以打印出来的是乱码。
malloc分配的内脊橘档存不会在函数结束后自动回收,因此需要用伍拦free()手动回收。如樱乱不回收会造成内存泄漏问题。
“wawawa”是个常量,而不是变量,就更谈不上局部和全物没局之说了。你的程序只是戚蚂携将指针高伏指向了这个常量,所以P的内容是确定的。