C ++字符变量值' \ x1'

时间:2015-01-24 15:23:50

标签: c++ character ascii

我无法理解为什么循环会退出字符变量的值i =' \ x1'

  #include <iostream>
    using namespace std;
    int main()
    {
        char i;

        for (i = 1; i < 10, i++;)
        {       
            cout << i << endl;
        }

        return 0;
    }

有人可以解释一下这种行为吗?

4 个答案:

答案 0 :(得分:2)

这是错误的

for (i = 1; i < 10, i++;)
               /* ^ should be ; */

答案 1 :(得分:1)

您只为循环声明了3个区域,但将增量语句放在中间区域,并将增量区域留空。我不知道您的编译器将选择执行的中间区域中的哪个语句。最好不要试图变得可爱并欺骗你的编译器。更别说一些同事将从现在开始阅读您的代码并转到WTF ???

for循环有3个由分号分隔的不同区域:

  1. 初始化区域。您可以根据需要在此处声明尽可能多的变量。这些可以用逗号分隔。
  2. 测试区域。这是表达式测试循环是否应该继续的地方。
  3. 后循环区域。这个代码区域在每次循环后执行。
  4. 尽量保持简单。如果它会变得更复杂,那么使用while循环。

答案 2 :(得分:1)

我最终成为1的原因是当i ++为零时终止循环,那么我将变为1(这就是你使用的++运算符的形式)。正如另一个回答所指出的那样,一旦你通过用分号替换逗号将i ++移出条件来修复你的代码,那么我将根据需要一直到10。

答案 3 :(得分:0)

for (i = 1; i < 10; i++)

您写错了for语句。