using namespace System;
Int32 main(void)
{
Char a = L'A'; // character literal 'A'
Char b = L'\x0041'; // Unicode notation also an 'A'
Console::WriteLine ( a.ToString() );
Console::WriteLine ( b.ToString() );
return 0;
}
刚开始学,VC++.NET ,想知道这段代码每部分先表达啥,特别是那个字符前的“L”,不是程序的用处,而是这段代码的结构,不如说,char时定义,后边的进行了赋值,谢谢大家
L'A' 表示字符A 以unicode的形式保存。
L'\x0041' 其中'\x0041' 表示16进制的A, 因为A的ascii码值是65 也就是16进制的 0041
所以a,b的值都是A ,都以unicode的形式保存。
请问为什么要用L呢
还有,Int32 main(void)和int main(array<System::String ^> ^args)
什么区别
@黑光夜中明: 这个问题可以转换为:char a = 'A'
和 char a = L'A'
有什么区别。
char 类型的字符是8位byte组成,一共有0到256种表示,现在的ASCII码就是0~256个数字。所以char类型是基于ASCII码的。一共也就包括256个字符,但是汉字远远不止这么多字符,或者其他语言。
所以需要有更多位的byte 表示的char类型:就是 wchar_t类型(宽字符),它在计算机种是16位到32位byte组成,可以表示很多很多种字符类型。也就是现在的Unicode码,万国码,包含所有的字符。
char a = 'A'
表示a是char
类型,而char a = L'A'
表示a是wchar_t
类型,所以为什么使用L呢,是方便我们定义 wchar_t
类型的字符呀。
char a = L'A'
编译器会报警告,L'A'
是一个wchar_t
类型,而你用char
类型接受。
@Shendu.CC: 谢谢,非常感谢
@黑光夜中明: Int32 main(void)
main 是程序入口函数,它表示这个入口函数不需要输入参数,因为参数是void,而需要返回Int32类型数字。所以你的程序return 0
;
而int main(array<System::String ^> ^args)
类推,需要输入array<string>类型的参数,返回int类型数据