A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 雪寒 中级黑马   /  2014-11-3 11:55  /  877 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  1. #include <stdio.h>

  2. int main()
  3. {
  4.         char *p = "abc";
  5.         printf("%s",*p);
  6. }
复制代码

这段代码,编译没问题,运行的时候就崩溃了,求解

5 个回复

倒序浏览
    你是要输出abc么    第七行改下  printf("%s",&*p);

点评

谢谢,问题解决了,可是为什么只要个首地址就可以输出了呢?  发表于 2014-11-3 12:11
回复 使用道具 举报
zhao190109 发表于 2014-11-3 12:04
你是要输出abc么    第七行改下  printf("%s",&*p);

嗯,这下没问题了,我把它改成printf("%s",p);也是可以的,可是为什么只要个首地址就可以输出了呢?
回复 使用道具 举报
视频里面讲数组的时候讲了数组在内存中存储方式...  你看一下就明白为什么了...  不然 你定义一个数组 直接输出数组名就能把所有内容输出出来  这回你又得疑问了
回复 使用道具 举报
数组在内存中是连续的,数组名存储的事首个元素的地址,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马