【发布时间】:2017-04-14 19:00:39
【问题描述】:
我只是想打印字符串的第一个字符,作为字符串(%s 格式说明符),它会导致分段错误。但是当我使用 %c 格式说明符时,它工作正常。为什么会这样?
#include<stdio.h>
#include<string.h>
int main()
{
char *str = "Feasible" ;
printf("%s",*str);
return 0;
}
是否有任何完美的理由导致分段错误发生?我的代码中的分段错误在哪里?
【问题讨论】:
-
将
str代替*str放入printf("%s",*str);中 -
printf("%s",*str);->printf("%s",str);。并打开你的编译器警告。 -
不同之处在于
%c希望传递实际字符,而不是它的位置,因此间接*str。 -
为什么要将单个字符打印为字符串?
-
@RajeevSingh , str 将打印完整的字符串,而不是单个字符。
标签: c segmentation-fault