C语言 这个问题 ,这是一个字符数组吗? 初始化的 是汉字啊?也能当字符用吗?、 一个汉字 占多大

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;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-20
这是一个字符数组。
字符数组实质上是一个8位整数的数组,也就是数组的每个元素其实就是一个0-255的数字。
初始化汉字没有问题,现在的编译器都支持。
一个汉字占用字符数组的两个空间。
%s是输出格式控制符,表示让printf按照输出字符串的方法输出name的内容。追问

为什么换成 %c就不行了 %s到底是干什么用的 具体

追答

%c是按字符输出。后面的对应变量要一个字符型变量。字符数组名实质上是指针。
%s就是一个占位符,表示这里有一个字符串,printf就会去后面的变量表里面找对应的字符数组指针,然后逐字符输出,遇到0停止。就是这个用处。

追问

那我只想输出一个快字 怎么办
printf("%s",name); 该怎么改

追答

在printf("%s",name);之前加一个name[2] = 0;

第2个回答  2011-09-20
初始化的汉字字符大小根据编译软件不同大小也不同,我记得一个汉字是两个字节的大小(visual C++软件)。汉字可以当做字符处理的。printf里面的name是数组name[10]的初始地址(你也可以认为是入口地址,只不过函数才会说,入口地址)),name的意思也就是说,从起入口地址输出,直至遇到'\0'操作符(这是一个结束符)!
第3个回答  2011-09-20
一个汉字占两个字节。
输出的是一个字符串

for(int i=0;i<2;i++)
printf("%c",name[i]);

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网