首先中文编码是4个字节,相当于四个字符。 中文数组一般是Unicode编码 wchar_t是C/C++的字符数据类型,就是unicode编码,char是8位字符类型,最多只能包含256种字符,许多外文所含的字符数目超过256个,char型无法表示。 wchar_t数据类型一般为16位或32位,但不同的C或C++库有不同的规定,如GNU Libc规定wchar_t为32位[1],总之,wchar_t所能表示的字符数远超char型。 标准C++中的wprintf()函数以及iostream类库中的类和对象能提供wchar_t类型的相关操作。 wchar_t数据类型一般为16位或32位,但不同的C或C++库有不同的规定,如GNU Libc规定wchar_t为32位[1],总之,wchar_t所能表示的字符数远超char型。
编写针对上述国家和地区的用户的程序时,如果你想让自己的应用程序得到更广泛的用户,那么必须考虑代码
字符集只有256个字符,用
兼容性意味着你的程序是否具有国际化特征,也就是说你的应用程序是针对本地市场还是国际市场。一旦你作出了决定,那么就得在代码中实现具体细节。好在
为了将上面的声明改成支持双字节的
|
在C语言中合法的字符常量是怎么定义的.
1、单引号括起来的单个常量叫字符常量,如‘a',’A','1'等 1、单引号括起来的转移字符也叫字符常量,转义字符形如‘\n',意思是将反斜杠后面的字符转换为其他意思,比如'\n',为回车换行,非字符n 3、转义字符的两种特殊情况是形如:’\0dd',和,\xxx'的形式,其中dd为八进制数,xxx为十六进制数,这两种形式表示相应ascii码值的ascii字符,换句话说,使用这两种形式的转移字符可表示ascii码表中的所有字符 所以你的问题中a是正确的
1. hello字符串是个常量,在内存中存储在常量区;
2. 将hello字符串的首字符h的地址,赋值给指针p;
*p='A'这样写,就意味着要修改hello这个常量字符串,这个在标准中是不建议这么干的。从你的提问来看,你的编译器也确实不让你这么干。
为何标准不建议修改常量字符串呢?因为字符串常量在程序中会被多次引用到,你在一个地方修改了它,那么别人再引用的时候就会纳闷儿怎么一个常量的东西被修改了?为了避免引起不必要的误会,标准不建议修改字符串常量。
当然了,如果你一定要修改,可以这样做:
这样是可以的。因为hello字符串常量的一个副本拷贝给了字符数组s,所以你修改字符数组s的时候,只是在修改字符串hello的一个拷贝而已。