#include
#define ai
int main(void)
{
scanf("%s",&"ai");
printf("%s","ai");
} 想把输入的内容赋予ai并输出,但输出的都是ai,最后一句用单引号代替双引号就是segmentation fault 想知道为什么,怎么改能调试成功?
首先ai应该做为一个变量定义
char ai[10]
然后做为输入的scanf应该这么用
scanf("%s",ai) //这里ai不用再加&,因为数组ai就为地址了,所以不用再加&取地址。
输出的时候应该是
printf(“%s”,ai)
首先,“ai”这是个字符串,你这么来当然是输出ai,改为单引号是要包含字符的,显然不行
#define a b
的意思是下面代码中的a替换为b。。你就写一个#define ai 是没用的。另外你要是刚开始学,至少分清楚变量和常量。。。
好学是值得鼓励的,书看到后面很多问题就一通百通了..
这个数组地址的问题,初学者经常写作,希望大家多多注意