为什么基本C代码会引发访问冲突

mas*_*boo -6 c exception

我是C编程的新手.我正在努力学习它.以下代码抛出访问冲突.为什么会这样?请解释一下.怎么解决?

char arr[] = { 'a', 'b', 'c', 'd', 'e', 'f' };
printf("%s", arr[0]);
Run Code Online (Sandbox Code Playgroud)

And*_*son 6

char arr[] = { 'a', 'b', 'c', 'd', 'e', 'f' };
printf("%c", arr[0]);
Run Code Online (Sandbox Code Playgroud)

%s表示打印所有字符,直到找到null(将变量视为指针).

%c表示只打印一个字符(将变量视为字符代码)

对字符使用%s不起作用,因为字符将被视为指针,然后它将尝试在内存中打印该位置之后的所有字符,直到找到空值.