char 数组

来源:百度知道 编辑:UC知道 时间:2024/05/26 03:48:12
//定义大写映射数组
char dx[10][3]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
//定义单位映射数组
char dw[8][5]={"元","十","百","千","万","十万","百万"};
//将钱以逆序存放于数组
两个下标怎末回事啊 ?

我个人理解:char的长度为8,复杂的汉字码长度大于8,后面的下标应该是用于记录汉字码的部分

你可以将dx看做十个字符串,每个长度是3字节,其中一个汉字占了两个字节,剩下一个字节放结束标记'\0'
dw就可以看做8个字符串,每个长5字节,为了能放下"十万","百万"统一长度而已。

回athos_mi,汉字里最简单的"一"也要占两个字节,并不是复杂的汉字占的地方大。

是这样的,按照一个汉字两个char来计算,因为大写映射中都是一个字的,所以长度应该为2,但是默认情况下还有一个字符串结束符'\0'占据一个char,所以定义成3位的字符数组。第二个类似,两个汉字,2*2+1=5。
不知道这个解释你满意不。

呵呵 简单的,小弟弟.
英文字符大小是1字节,汉字是2字节.所以dx数组是[10][3]----是10组数组元素,每个元素3字节空间,dw数组是[8][5]---预备8个元素,每个元素用5字节储存

1 2 3 4 5 6 7 8 9 10
我们 1-----交换10 2-----交换9 3--------交换8
4-----交换7 5-----交换6 就是数组逆排了啊
程序是:
#include<stdio.h>
main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},temp,i;
printf("\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
for(i=0;i<10;i++)
{temp=a[i];
a[i]=a[9-i];
a[9-i]=temp}
printf("\n");
for(i=9;i>=0;i--)
printf(&