char* teststr() {
char s[] = "hello";
return s;
} void main()
{
char* str = teststr();
char c1 = str[]; //h
char c2 = str[]; //e
char c3 = str[]; //l
char c4 = str[]; //l
char c5 = str[]; //o
char c6 = str[]; //\0 char* s2 = str; printf(str);
}

根据理论:s是栈上数组,是个局部变量,出了函数后将变得无效,如上程序,printf(str)是乱码,验证了理论。

同样,在单步调试状态下查看str的值也是乱码。

但,若去掉 printf(str)这一行,则在单步调试下查看str和s2的值都是正确的结果, 这很奇怪

PS,字符串常量与变量

char* teststr() {
char s[] = "hello"; //字符串变量
return s;
} char* teststr2() {
char* s = "hello"; //字符串常量
return s;
}

最新文章

  1. 设计模式--单例模式Singleton(创建型)
  2. 解决eclipse+MAVEN提示One or more constraints have not been satisfied.的问题
  3. codeforces A. Table 解题报告
  4. Android-Adapter用法总结
  5. Android之 学习路线
  6. (转)iOS学习之 plist文件的读写
  7. java中打开说明文档
  8. 用C实现一个简单的对拍器——致每个曾经为求AC披星戴月的程序员们
  9. 点集配对问题(状态dp)
  10. springMVC+Mybatis(使用AbstractRoutingDataSource实现多数据源切换时)事务管理未生效的解决办法
  11. 2_http协议详解
  12. Laravel ORM 数据model操作
  13. clear命令新认识
  14. 跟我一起学opencv 第二课之图像的掩膜操作
  15. python的pyspider框架下爬虫
  16. iis配置问题
  17. JSP内置对象page/pageContext/Config/Exception
  18. Azure Redis 缓存使用注意事项与排查问题文档整理
  19. Java 8 lambda表达式示例
  20. Javascript库的产生和解读

热门文章

  1. Hibernate-Criteria学习笔记
  2. 从汇编到C
  3. 卸载yum-mysql
  4. Python 如何用列表实现栈和队列?
  5. SCUT - 484 - 平面上的点 - 数据结构
  6. java体系中OOP,OOD,OOA分别代表什么含义,以及OA,CRM,ERP
  7. How Does Caching Work in AFNetworking? : AFImageCache & NSUrlCache Explained
  8. order by关键字优化
  9. ln -在文件之间建立连接
  10. poj 1564 Sum It Up(dfs)