相关疑难解决方法(0)

C++中的" - >"运算符是什么?

看完后隐藏功能和C++/STL的暗角comp.lang.c++.moderated,我完全惊讶的是,下面的代码片断编译并在两个Visual Studio 2008和G ++ 4.4的工作.

这是代码:

#include <stdio.h>
int main()
{
    int x = 10;
    while (x --> 0) // x goes to 0
    {
        printf("%d ", x);
    }
}
Run Code Online (Sandbox Code Playgroud)

我假设这是C,因为它也适用于GCC.标准中定义了哪里,它来自何处?

c++ code-formatting standards-compliance operators

8590
推荐指数
27
解决办法
75万
查看次数

C++ for循环中的无符号整数

我在Stackoverflow上对C++中的反向循环进行了一些研究,它使用无符号整数而不是有符号整数.但我仍然不明白为什么会出现问题(请参阅带有for循环的Unsigned int反向迭代).为什么以下代码会产生分段错误?

#include <vector>
#include <iostream>
using namespace std;

int main(void)
{
    vector<double> x(10);

    for (unsigned int i = 9; i >= 0; i--)
    {
        cout << "i= " << i << endl;
        x[i] = 1.0;
    }

    cout << "x0= " << x[0] << endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我明白问题是当索引i等于零时,因为有类似溢出的东西.但我认为无符号整数可以取零值,不是吗?现在,如果我用有符号整数替换它,那绝对没有问题.

有人能用无符号整数向我解释反向循环背后的机制吗?

非常感谢你!

c++ for-loop unsigned-integer

11
推荐指数
2
解决办法
2万
查看次数