Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 这段代码在做什么&_C++ - Fatal编程技术网

C++ 这段代码在做什么&

C++ 这段代码在做什么&,c++,C++,我有这个考试代码,但我不知道在做什么。请帮帮我!我只知道它有一些错误,并显示了一些东西。也许这让你不知所措 从main的第一行开始:什么是 #include <iostream> #include <string> typedef unsigned long long ul64; double m[10] = { 65.45433, 45435.0054, 232543535.9, 0.00043543, 99.99999, 5345434.000, 754354.6,

我有这个考试代码,但我不知道在做什么。请帮帮我!我只知道它有一些错误,并显示了一些东西。

也许这让你不知所措

从main的第一行开始:什么是

#include <iostream>
#include <string>
typedef unsigned long long  ul64;
double m[10] = { 65.45433, 45435.0054, 232543535.9, 0.00043543, 99.99999, 5345434.000, 754354.6, 80008.243, 0.9, 10.01 };
union foo
{
    char cs[8];
    double x;
    ul64 a;
    foo(std::string s) { for (int i = 0; i < s.size(); i++) cs[i] = s[i];}
    foo(double y) :x(y){}
    foo(ul64 b) :a(b){}
};
int main()
{
    foo bar(0xe8e711395e65686d);
    for (int i = 1; i <= 10; i++)
        bar.x *= m[i];
    for (int i = 1; i <= 8; i++)
        std::cout << bar.cs[i];
    std::cout << std::endl;
    return 0;
}
是吗?它创建一个名为bar的变量,其类型为foo,并使用参数0xe8e711395e65686d调用构造函数。那么这有什么用呢

阅读Mooing Duck的评论:它打算做什么,你如何修复它,使它能够做它打算做的事情

您有两个for循环:

    foo bar(0xe8e711395e65686d);
两者都包含相同的初学者错误。错在哪里?修好它


最后在输出循环中,您需要了解联合是什么。代码很奇怪,但您应该仍然能够解释它的作用

你知道联合是什么吗?这段代码很残忍,取决于它运行的处理器。它所做的一件事是未定义的行为,因为它读取的数组是从1到10的m。这是非常糟糕的代码。非常糟糕的代码。在我的机器上,它会产生错误:重载的'huongunsigned int'的调用是不明确的。如果我修好了,它会打印出来��
for (int i = 1; i <= 10; i++)
for (int i = 1; i <= 8; i++)