#include<stdio.h> #include<string.h> int main() { char a[]={'h','我'}; printf("h的长度是%d,我的长度是%d\n",sizeof(a[0]),sizeof(a[1])); system("pause"); }
下边是运行结果:
一楼说的对,汉字需要两个字符来存储
你这样写就知道他的长度了:
char ch[] = "中";
int size = sizeof(ch) == 3
a[1]其实是'我'的前半部分。
就用的char类型,必须为1啊~
同意。
sizeof是操作符,编译的时候就已经确定值了。
试试strlen()
其实和编码格式有关系的,UTF-8是三个字节,GB2312是两个字节,所以:
char ch[] = "中";
UTF-8下:
sizeof(ch) = 4;
GB2312下:
sizeof(ch) = 3;
’/0‘要占一个字符。