第一个输出是为什么哦,纯为了理解
#include<stdio.h>
int main()
{
char a[] = {'a','b','\0'};
printf("%c\n", a);//输出$
printf("%s\n", a);//输出ab
printf("%p", a);
return 0;
}
第一个输出是为什么哦,纯为了理解
#include<stdio.h>
int main()
{
char a[] = {'a','b','\0'};
printf("%c\n", a);//输出$
printf("%s\n", a);//输出ab
printf("%p", a);
return 0;
}
第一个输出 %c 是以字符格式输出变量 a 的第一个元素,但是变量 a 是一个字符数组,只给出了数组的第一个元素,没有给出数组名或数组下标,因此编译器并不知道要输出哪个元素,于是随机返回了一个字符。$ 并不是公认的随机字符,输出结果可能因编译器和操作系统的不同而有所差异。
正确的输出方式应该是 printf("%c\n", a[0]);,指明要输出数组 a 的第一个元素。
以下是修正过的代码,可以正确输出:
#include<stdio.h>
int main()
{
char a[] = {'a','b','\0'};
printf("%c\n", a[0]); //输出a
printf("%s\n", a); //输出ab
printf("%p\n", a); //输出 a 的地址
return 0;
}