注册 登录
查看: 6532|回复: 467

【每日一题讲解】超多人理解错的堆栈问题

  [复制链接]
发表于 2013-11-11 20:52:54 | 显示全部楼层 |阅读模式

  1. //题目如下
  2. #include <stdio.h>
  3. char *str()
  4. {
  5.     char *p = "vcan123.com";
  6.     return p;
  7. }
  8. int main(int argc, char *argv[])
  9. {
  10.     printf("%s", str());
  11.     return 0;
  12. }
  13. //选项如下:
  14. //A.vcan123.com
  15. //B.乱码
  16. //C.%s
  17. //D.程序崩溃
请回答问题后再看答案哦,否则 每日一题 就没有意义了。
答错的,讲一下 为什么 会答错 呗!


游客,如果您要查看本帖隐藏内容请回复









本帖被以下淘专辑推荐:

回复

使用道具 举报

发表于 2014-9-10 08:55:09 | 显示全部楼层
本帖最后由 gsc617 于 2014-9-10 08:59 编辑

被你们找出来的旧题目我也学习一下。

“初学123.com”似乎是通过堆栈存放的,不能把它的地址传递到函数外部,那样会很危险的吧,
难道是程序崩溃吧,如果不是的话,那我就真的不懂了,这是学无止境呀。天天进步


表示错了
回复 支持 1 反对 0

使用道具 举报

发表于 2013-11-11 21:39:48 | 显示全部楼层
"vcan123.com" 是 字符串,放在 常量区
回复 支持 反对

使用道具 举报

发表于 2013-11-11 22:59:35 | 显示全部楼层
我来看看答案的
回复 支持 反对

使用道具 举报

发表于 2013-11-11 23:28:30 | 显示全部楼层
抢沙发~我来顶楼主的
回复 支持 反对

使用道具 举报

发表于 2013-11-11 23:31:09 | 显示全部楼层
vcan123.com
回复 支持 反对

使用道具 举报

发表于 2013-11-12 09:36:44 | 显示全部楼层
蒙对啦,呼呼
回复 支持 反对

使用道具 举报

发表于 2013-11-12 10:34:45 | 显示全部楼层
做错了,真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-11-12 12:41:26 | 显示全部楼层
中计,错了
回复 支持 反对

使用道具 举报

发表于 2013-11-12 13:02:31 | 显示全部楼层
来顶顶山外哥咯
回复 支持 反对

使用道具 举报

发表于 2013-11-12 13:48:17 | 显示全部楼层
真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-11-12 15:12:30 | 显示全部楼层
题目真典型,一不认真就错了
回复 支持 反对

使用道具 举报

发表于 2013-11-12 15:23:44 | 显示全部楼层
又回答错了
回复 支持 反对

使用道具 举报

发表于 2013-11-12 16:16:23 | 显示全部楼层
不是只有指针吗?
回复 支持 反对

使用道具 举报

发表于 2013-11-12 16:20:57 | 显示全部楼层
答案英爱是A吧
回复 支持 反对

使用道具 举报

发表于 2013-11-12 16:21:06 | 显示全部楼层
这个函数返回了一个地址,
回复 支持 反对

使用道具 举报

发表于 2013-11-12 16:29:57 | 显示全部楼层
真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-11-12 16:30:02 | 显示全部楼层
是不是D呢?
回复 支持 反对

使用道具 举报

发表于 2013-11-12 16:31:10 | 显示全部楼层
哎呀,一不小心就做错了
回复 支持 反对

使用道具 举报

发表于 2013-11-12 16:31:46 | 显示全部楼层
看看答案真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-11-12 17:21:49 | 显示全部楼层
因为常量字符串存放的位置不是在栈空间,所以函数空间释放了也还可以正常读取吗?
回复 支持 反对

使用道具 举报

发表于 2013-11-12 18:47:13 | 显示全部楼层
答对了哦 要写这么多字啊
回复 支持 反对

使用道具 举报

发表于 2013-11-12 19:28:04 | 显示全部楼层
回复就有答案吗
回复 支持 反对

使用道具 举报

发表于 2013-11-12 20:29:20 | 显示全部楼层
回答错了,学习一下。山外哥!
回复 支持 反对

使用道具 举报

发表于 2013-11-12 21:38:25 | 显示全部楼层
我要看答案
回复 支持 反对

使用道具 举报

发表于 2013-11-13 11:33:23 | 显示全部楼层
栈 变量,不是乱码吗?
回复 支持 反对

使用道具 举报

发表于 2013-11-13 11:33:40 | 显示全部楼层
靠,答错了
回复 支持 反对

使用道具 举报

发表于 2013-11-13 14:16:34 | 显示全部楼层
走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2013-11-13 21:07:14 | 显示全部楼层
抢沙发~我来顶楼主的
回复 支持 反对

使用道具 举报

发表于 2013-11-14 10:09:22 | 显示全部楼层
戈矛 发表于 2013-11-13 11:33
靠,答错了

靠,该打了
回复 支持 反对

使用道具 举报

发表于 2013-11-14 10:24:13 | 显示全部楼层
回复看答案。
回复 支持 反对

使用道具 举报

发表于 2013-11-16 20:45:17 | 显示全部楼层
A走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2013-11-16 23:23:09 | 显示全部楼层
我猜是A。。
回复 支持 反对

使用道具 举报

发表于 2013-11-17 02:36:24 | 显示全部楼层
再来一发。。
回复 支持 反对

使用道具 举报

发表于 2013-11-17 21:11:53 | 显示全部楼层
看答案。。。。。。。
回复 支持 反对

使用道具 举报

发表于 2013-11-19 23:20:03 | 显示全部楼层
真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-11-21 21:52:19 | 显示全部楼层
char *str()这个没看懂是什么意思////尴尬。。。。。。。
还有 int main(int argc,char *argv[])是什么意思???
回复 支持 反对

使用道具 举报

发表于 2013-11-22 15:33:17 | 显示全部楼层
真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-11-24 11:33:07 | 显示全部楼层
走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2013-11-24 14:56:41 | 显示全部楼层
来看答案的
回复 支持 反对

使用道具 举报

发表于 2013-11-26 15:36:47 | 显示全部楼层
走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2013-11-28 11:42:20 | 显示全部楼层
局部变量函数执行完之后会被释放掉,再去访问这个地址就非法了,所以应该是d,会崩溃掉
回复 支持 反对

使用道具 举报

发表于 2013-11-30 09:59:24 | 显示全部楼层
真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-12-2 10:33:41 | 显示全部楼层
抢沙发~我来顶楼主的抢沙发~我来顶楼主的抢沙发~我来顶楼主的
回复 支持 反对

使用道具 举报

发表于 2013-12-8 10:19:04 | 显示全部楼层
D,程序崩溃走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2013-12-10 23:59:20 | 显示全部楼层
a走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2013-12-12 11:30:06 | 显示全部楼层
B真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-12-15 10:53:11 | 显示全部楼层
真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-12-15 10:54:35 | 显示全部楼层
真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-12-19 14:14:54 | 显示全部楼层
A,,,字数补丁
回复 支持 反对

使用道具 举报

发表于 2013-12-19 19:00:08 | 显示全部楼层
觉得答案是A
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部