[每日一氵]C语言函数不要返回数组地址-创新互联
以下两种初始化字符串的方式并返回
金昌ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!char *get_str():
char *str = "LBWNB";
return str
char *res = get_str();
char *get_str():
char str[] = "LBWNB";
return str
char *res = get_str();
后者由于是数组,所以返回后给外部的 res 变量,res 会变成 NULL,(函数执行完毕后释放了)
而前者这样的申请方式,返回给外部 res 变量,res 可以正常访问字符串 “LBWNB”
值得一提的是,char *str = "LBWNB";
这样执行,字符串是被存在**(全局)静态数据区**的,其只可以被访问,不可以被修改,如果执行*(str+1) = 'v'
,其编译可以通过,但在执行过程中,可能报segmentfault
。
而char str[] = "LBWNB";
执行之后,字符串数据存在栈区,可以被修改.
顺便安利一个C的在线编译网站:https://godbolt.org/
其余详细内容可查看: https://blog.csdn.net/lanyang123456/article/details/6669926
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
新闻标题:[每日一氵]C语言函数不要返回数组地址-创新互联
分享网址:http://scyanting.com/article/csoojo.html