求助一个%c和%s的问题
#include<stdio.h>int main()
{
char *color = {"A","B","C","D","E"};//不是一整个字符串
char **p; // p = &color; color = &每个元素
for (int i = 0; i < 5; i++)
{
p = color + i;
printf("%s\t",*p);
}
return 0;
}
#include<stdio.h>
int main()
{
char *color = {"A","B","C","D","E"};//不是一整个字符串
for (int i = 0; i < 5; i++)
{
printf("%c\t",*color);
}
return 0;
}
想问问这里的第一个程序,用 %s 才能输出而用 %c 不行。
而第二个程序用吗 %c 可以而用 %s 不行,这是为啥呢?
c语言中双引号界限的都是字符串,要用%s来显示
和是否一个字符没关系 wp231957 发表于 2021-2-28 13:07
c语言中双引号界限的都是字符串,要用%s来显示
和是否一个字符没关系
为啥 第二个程序用吗 %c 可以而用 %s 不行 学编程的盆子 发表于 2021-2-28 13:25
为啥 第二个程序用吗 %c 可以而用 %s 不行
我似乎知道了 ,跟 Printf中的 地址有关
如果前面是%s,那对于的就是地址
如果是%c,对应的是值 #include<stdio.h>
int main()
{
char color = {"A","B","C","D","E"};
char *p;
p = color;
printf("%s",p);
return 0;
}
为啥我这样写会报错呢
难道只有char color[] = " "
这种一个双引号的形式才可以这样执行吗 学编程的盆子 发表于 2021-2-28 13:30
#include
int main()
{
不是说了吗
双引号界限字符串
单引号界限字符
你前面定义的是字符数组,后面一定要用单引号
后面你用双引号,前面就要定义字符串数组 wp231957 发表于 2021-2-28 13:35
不是说了吗
双引号界限字符串
单引号界限字符
#include<stdio.h>
int main()
{
char color = {"A","B","C","D","E"};
char *p;
p = color;
printf("%s",p);
return 0;
}
为啥我这样写会报错呢
难道只有char color[] = " "
这种一个双引号的形式才可以这样执行吗 学编程的盆子 发表于 2021-3-1 21:41
#include
int main()
{
我六楼说的不够清晰吗
char color = {"A","B","C","D","E"};你这个前面定义的是字符数组,后面花括号里给出的是字符串数组,要是能通过就怪了 ‘A’和 "A" 这两个的含义是不一样的 "A"就等于'A\0'
页:
[1]