杯酒笑离殇
2015-10-23 07:59
采纳率: 33.3%
浏览 1.5k
已采纳

我是大一新生,求前辈们指教~~

#include
#define ai
int main(void)
{
scanf("%s",&"ai");
printf("%s","ai");
} 想把输入的内容赋予ai并输出,但输出的都是ai,最后一句用单引号代替双引号就是segmentation fault 想知道为什么,怎么改能调试成功?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • BlueBlood 2015-10-23 08:31
    已采纳

    首先ai应该做为一个变量定义
    char ai[10]
    然后做为输入的scanf应该这么用
    scanf("%s",ai) //这里ai不用再加&,因为数组ai就为地址了,所以不用再加&取地址。
    输出的时候应该是
    printf(“%s”,ai)

    点赞 打赏 评论
  • wangzd_study 2015-10-23 08:25

    首先,“ai”这是个字符串,你这么来当然是输出ai,改为单引号是要包含字符的,显然不行

    点赞 打赏 评论
  • Braum 2015-10-23 08:40

    #define a b
    的意思是下面代码中的a替换为b。。你就写一个#define ai 是没用的。另外你要是刚开始学,至少分清楚变量和常量。。。

    点赞 打赏 评论
  • Manager_Wong 2015-10-23 12:55

    好学是值得鼓励的,书看到后面很多问题就一通百通了..

    点赞 打赏 评论
  • shiter 2015-10-24 04:15

    这个数组地址的问题,初学者经常写作,希望大家多多注意

    点赞 打赏 评论

相关推荐 更多相似问题