给char值作为数组索引给出错误的输出

时间:2019-08-09 03:19:16

标签: c++

我给了一个char c,值(c ='1')作为要打印的数组索引 它给了我一个错误的输出

#include<iostream>
using namespace std;
int main()
{
    int a[5];
    cin>>a[1]; //5
    char c ='1';
    cout<<c<<" "<<a[c];

}

我希望输出5,但实际输出是一些随机数

1 个答案:

答案 0 :(得分:2)

您的输出代码等效于:

cout << c << " " << a[int(c)];

换句话说:

cout << '1' << " " << a[49];

那只是未定义的行为。享受鼻恶魔。

相关问题