问题描述
- 我是大一新生,求前辈们指教~~
-
#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 是没用的。另外你要是刚开始学,至少分清楚变量和常量。。。
解决方案四:
好学是值得鼓励的,书看到后面很多问题就一通百通了..
解决方案五:
这个数组地址的问题,初学者经常写作,希望大家多多注意
时间: 2024-09-11 02:20:09