C语言中汉字的大小

上代码

#include<stdio.h>
#include<string.h>

int main()
{
	char a[] = "汉";
	int sz1 = sizeof("汉");
	int sz2 = strlen("汉");
	int sz3 = sizeof(a);
	int sz4 = strlen(a);

	printf("sz1=%d\n", sz1);
	printf("sz2=%d\n", sz2);
	printf("sz3=%d\n", sz3);
	printf("sz4=%d\n", sz4);
	return 0;
}

运行结果

sz1=3
sz2=2
sz3=3
sz4=2

在增加一个汉字

#include<stdio.h>
#include<string.h>

int main()
{
	char a[] = "汉字";
	int sz1 = sizeof("汉字");
	int sz2 = strlen("汉字);
	int sz3 = sizeof(a);
	int sz4 = strlen(a);

	printf("sz1=%d\n", sz1);
	printf("sz2=%d\n", sz2);
	printf("sz3=%d\n", sz3);
	printf("sz4=%d\n", sz4);
	return 0;
}

运行结果

sz1=5
sz2=4
sz3=5
sz4=4

分析
strlen 相比 sizeof ,strlen 会把结尾的 \0 给算进去。
每增加一个汉字,字节长度会加 2

结论:汉字长度两个字节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值