我是C编程的新手.我正在努力学习它.以下代码抛出访问冲突.为什么会这样?请解释一下.怎么解决?
char arr[] = { 'a', 'b', 'c', 'd', 'e', 'f' };
printf("%s", arr[0]);
Run Code Online (Sandbox Code Playgroud)
char arr[] = { 'a', 'b', 'c', 'd', 'e', 'f' };
printf("%c", arr[0]);
Run Code Online (Sandbox Code Playgroud)
%s表示打印所有字符,直到找到null(将变量视为指针).
%c表示只打印一个字符(将变量视为字符代码)
对字符使用%s不起作用,因为字符将被视为指针,然后它将尝试在内存中打印该位置之后的所有字符,直到找到空值.