我试图以两种方式为数组设置负零。我需要知道如何为每种类型分配内存。
类型1:
double dArray=new double[2];
dArray[0]= 0;
dArray[1]=-0;
类型2:
double dArray=new double[2];
dArray[0]=0;
dArray[1]=-dArray[0];
任何人都可以澄清这一点。
谢谢, LOKESH。
答案 0 :(得分:3)
代码无法编译。我想你的意思是
double[] dArray=new double[2];
double
是一种值类型,它的存储空间与您分配给double
值的方式没有区别。这两个代码示例(一旦修复)导致dArray
的内存布局完全相同。
总是写-0.0
会非常清楚。
请注意,Visual Studio始终将负零表示为0.0
,这确实会让您对-0.0
的存在产生信心!
这里有一些关于负零的相关讨论:How can I test for negative zero?
答案 1 :(得分:0)
我有兴趣理解你的用例,因为通常-0 = + 0 = 0。
在任何情况下,它们都会被视为价值类型。