【发布时间】:2020-04-17 06:30:15
【问题描述】:
#include <stdio.h>
int main(){
char *s="hello world";
printf("%c\n",s);
}
我用 C 编写了一个小代码。在这段代码的最后一条语句中,我在 printf() 函数中使用了 %c 格式说明符,并在其中分配了名为 s 的指针。它给了我D 作为输出。它是返回垃圾值还是我的代码自动在其中分配 ASCII 值或其他什么?
当我添加s+1 它返回E 和s+2 返回F 等等。谁能给我解释一下?
【问题讨论】:
-
因为字符串是用
%s打印的,正如您最喜欢的初级C 编程书籍的第一章所预言的那样。您的代码调用了未定义的行为错误,这意味着任何事情都可能发生。可能编译器会尝试将 address 的第一个字节作为字符打印到s。 -
检查数据类型......
-
@Sourav Ghosh 谢谢。