char name[10]="快乐";
printf("%s",name); 就可以输出
C语言 这个问题 ,这是一个字符数组吗? 初始化的 是汉字啊?也能当字符用吗?、 一个汉字 占多大 %s什么意思啊
他输出name 是什么意思 输入 数组名 里的变量?
就相当于快字占用了name[0],name[1]
而乐字占用了name[2],name[3]
但是c语言的内存是连续的,就相当于个一字符串一样
所以用%s就可以把它当成一个字符串输出追问
那我只想输出一个快字 改怎么办
printf("%s",name); 该怎么改
printf("%c%c",name[0],name[1]);应该就可以了
追问printf("%c%c",name[01])
可以嘛放到一个括号里;
那是不可以的.那个name[0]中的0是代表数组中的一位
也就是想当于内存中的一块区域
就拿name[10]来说
那个在[ ]之间只能添入0~9这10个数,其它的是不可以的
char name[10]="快乐";
printf("%s%s\n"),name[0],name[1];
return 0;
}
哪错了 怎么 一直输出的不是快 字
char name[10]="快乐";
printf("%c%c\n",name[0],name[1]);
return 0;
}
字符数组实质上是一个8位整数的数组,也就是数组的每个元素其实就是一个0-255的数字。
初始化汉字没有问题,现在的编译器都支持。
一个汉字占用字符数组的两个空间。
%s是输出格式控制符,表示让printf按照输出字符串的方法输出name的内容。追问
为什么换成 %c就不行了 %s到底是干什么用的 具体
追答%c是按字符输出。后面的对应变量要一个字符型变量。字符数组名实质上是指针。
%s就是一个占位符,表示这里有一个字符串,printf就会去后面的变量表里面找对应的字符数组指针,然后逐字符输出,遇到0停止。就是这个用处。
那我只想输出一个快字 怎么办
printf("%s",name); 该怎么改
在printf("%s",name);之前加一个name[2] = 0;
输出的是一个字符串
for(int i=0;i<2;i++)
printf("%c",name[i]);