this->textBox1->Name = L"textBox1";

虽然没有L也可以,但是前缀的作用是什么呢?它的使用方式甚至对铁杆C程序员来说都没有意义。


当前回答

下面是这个用法的一个例子: 通过在char前面添加L,可以返回char32_t类型的Unicode字符:

          char32_t utfRepresentation()
      {
                if (m_is_white)
                {
                          return L'♔';
                }

                return L'♚';

      };

其他回答

“L”表示wchar_t,与普通字符不同,它需要16位而不是8位的存储空间。这里有一个例子:

"A"    = 41
"ABC"  = 41 42 43
L"A"   = 00 41
L"ABC" = 00 41 00 42 00 43

wchar_t是简单char的两倍大。在日常使用中,你不需要使用wchar_t,但如果你在使用windows.h,你就需要它。

L是用于宽字符串的前缀。每个字符使用几个字节(取决于wchar_t的大小)。所使用的编码与该前缀无关。我的意思是它不一定是UTF-16,不像这里的其他答案。

这意味着它是一个宽字符wchar_t。

类似于1L是一个长值。

这意味着文本存储为wchar_t字符,而不是普通的旧char字符。

(我最初说它指的是统一码。我错了。但它可以用于统一码。)

它是一个wchar_t字面值,用于扩展字符集。维基百科上有一些关于这个主题的讨论,以及c++的例子。