首页 新闻 会员 周边 捐助

哪位可以解释下各部分含义

0
[已解决问题] 解决于 2019-03-08 13:27

using <mscorlib.dll>

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时定义,后边的进行了赋值,谢谢大家

黑光夜中明的主页 黑光夜中明 | 菜鸟二级 | 园豆:218
提问于:2019-03-03 14:46
< >
分享
最佳答案
0

L'A' 表示字符A 以unicode的形式保存。
L'\x0041' 其中'\x0041' 表示16进制的A, 因为A的ascii码值是65 也就是16进制的 0041

所以a,b的值都是A ,都以unicode的形式保存。

奖励园豆:5
Shendu.CC | 老鸟四级 |园豆:2138 | 2019-03-03 14:56

请问为什么要用L呢

黑光夜中明 | 园豆:218 (菜鸟二级) | 2019-03-03 15:15

还有,Int32 main(void)和int main(array<System::String ^> ^args)
什么区别

黑光夜中明 | 园豆:218 (菜鸟二级) | 2019-03-03 15:33

@黑光夜中明: 这个问题可以转换为: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 | 园豆:2138 (老鸟四级) | 2019-03-03 15:43

@Shendu.CC: 谢谢,非常感谢

黑光夜中明 | 园豆:218 (菜鸟二级) | 2019-03-03 15:44

@黑光夜中明: Int32 main(void) main 是程序入口函数,它表示这个入口函数不需要输入参数,因为参数是void,而需要返回Int32类型数字。所以你的程序return 0

int main(array<System::String ^> ^args)类推,需要输入array<string>类型的参数,返回int类型数据

Shendu.CC | 园豆:2138 (老鸟四级) | 2019-03-03 15:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册