c# 中的字符数组:
static char[] invalidСharacters = { '~', '@', '#', '$', '%', '^', '-', '_', '(', ')', '{', '}', '`', '+', '=', '[', ']', ':',
',', ';',',', '.', '/', '?','/','\\',':','*','?','«','»','<','>','|','&','—'};
c ++中的字符数组(使用Qt):
static QStringList invalidСharacters ={ "~", "@", "#", "$", "%", "^", "-", "_", "(", ")", "{", "}", "`", "+", "=", "[", "]", ":",
",", ";",",", ".", "/", "?","/","\\",":","*","?","«","»","<",">","|","&","—"};
问题:为什么在 c# 中 - 字符'«','»','—'
= 由几个单个字符组成 - 被视为 char 并且可以通过单引号写入没有问题,而在 c++ 中 - 有必要将这些字符写为字符串(当然,这是合乎逻辑的- 因为 . 有多个字符)。
也就是说,事实上,我的问题更多的是关于 c# 并归结为上面提到的问题,与 c++ 的内部结构相比,什么允许你这样做?
因为在 C# 中 char 类型是 2 个字节(https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/char),而在 C++ 中是 1 个字节: