超出数据类型限制

时间:2019-05-27 09:05:46

标签: c++ c++14

#include <iostream>

int main()
{
    char mychar = 'A';
    while (mychar <= '456')
    {
        std::cout << mychar  << " " << static_cast<int>(mychar) << "\n";
        ++mychar;
    }

    return 0;
}

我上面的程序作为一个输出有一个无限循环,并带有一些硬件噪音。

char mychar = 'A';
while (mychar <= '456')

预计会有一个无限循环,尽管它带有噪音。

1 个答案:

答案 0 :(得分:0)

'456'是一个多字符文字,它占用3个字节,并且在您的情况下其值大于128。

char的范围是-128到127

while (mychar <= '456')  // this condition is always true 
 mychar++; // it changes from 65,66,67,....127,-128,-127,.....0,1,...64,65...