【问题标题】:Return a double value from an array element to the console将数组元素中的双精度值返回到控制台
【发布时间】:2020-07-28 20:53:20
【问题描述】:

我有一些代码,其中 norms 被声明为大小为 3 x 2 的双精度数组。我想将 norms[0] 输出到控制台。

#include <iostream> 
using namespace std;
    
double norms[3][2];
_cal_norm(dept,size,max_posn,norms[0]);
cout << norms[0];

我想返回双精度值。我曾尝试使用cout &lt;&lt; norms[0] 将其退回。但它会返回以下内容:

规范[0] 1 0x7fff33d52180

有没有办法让我看到双精度值?

【问题讨论】:

  • 如果您想打印norms[0] 子数组中的两个值,则将它们都打印:std::cout &lt;&lt; norms[0][0] &lt;&lt; " " &lt;&lt; norms[0][1] &lt;&lt; std::endl; 否则,您要求打印 address子数组。
  • 我想你的意思是norms[0][0]norms 是一个二维数组; norms[0] 是一维数组。
  • 不相关,但是全局命名空间中带有前导下划线的所有标识符都是保留的,并且使用这样的名称具有未定义的行为。你应该调用你的函数_cal_norm()。

标签: c++ arrays


【解决方案1】:

norms 是一个二维数组,所以norms[0] 是外部数组中的第一个内部数组。如果您使用cout &lt;&lt; norms[0];,它将打印第一个数组的地址。这就是为什么你得到一个十六进制数。例如,如果您的目标是在二维数组中打印一个数字,那么您应该编写 cout &lt;&lt; norms[0][0];,它将打印出 norms 中第一个数组的第一个值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    • 1970-01-01
    相关资源
    最近更新 更多