C++ 这段代码在做什么&
我有这个考试代码,但我不知道在做什么。请帮帮我!我只知道它有一些错误,并显示了一些东西。也许这让你不知所措 从main的第一行开始:什么是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,
#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++)