【问题标题】:Multicharacter-literal to char array字符数组的多字符文字
【发布时间】:2019-11-22 17:32:22
【问题描述】:

我尝试将多字符文字转换为 char 数组。

我知道 static_cast 以及如何计算多字符

但是多字符文字的结果如何插入到数组中。

跟随代码。

#include <iostream>
using namespace std;

int main()
{
    char a [] ={static_cast<char>('adcde')};
    cout << 'adcde' << endl;
    cout << a << endl;
    cout << a[3] << endl;
}

输出:

1684235365
e\270\365\277\357\376
\277

【问题讨论】:

    标签: c++ char hex static-cast


    【解决方案1】:
    char a [] ={static_cast<char>('adcde')};
    

    这将创建一个包含 1 个元素的数组。元素的值是强制转换的结果。这将是一些实现定义的值。

    cout << 'adcde' << endl;
    

    这将打印多字符文字。这将是一些实现定义的值。

    cout << a << endl;
    

    这会打印一个字符数组。但是因为数组不包含以空结尾的字符串,所以程序的行为是不确定的。

    cout << a[3] << endl;
    

    这会访问边界之外的1个元素的数组,并且程序的行为是未定义的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-16
      • 2012-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-05
      相关资源
      最近更新 更多