C++ 使用双精度数组时的指针算术
所以我有一个指向一个double数组的指针,我需要做的是我们的指针算法,移动到数组中的下一个位置,但是我找不到任何关于如何操作的合适文档 这是我当前的行请记住,温度数组是一个指针数组,看起来像这个double*temperaturesArray=newdouble[daysToPrompt]C++ 使用双精度数组时的指针算术,c++,pointers,pointer-arithmetic,C++,Pointers,Pointer Arithmetic,所以我有一个指向一个double数组的指针,我需要做的是我们的指针算法,移动到数组中的下一个位置,但是我找不到任何关于如何操作的合适文档 这是我当前的行请记住,温度数组是一个指针数组,看起来像这个double*temperaturesArray=newdouble[daysToPrompt] 您不需要编写任何指针算术。只需使用[]运算符索引到数组中 cout << setw(10)<< counter + 1 << setw(10) <<
您不需要编写任何指针算术。只需使用[]运算符索引到数组中
cout << setw(10)<< counter + 1
<< setw(10) << temperaturesArray[ counter ] << "\370C"
<<setw(10) << getFahrenheit(temperaturesArray[ counter ]) <<"\370F"
<< endl;
这将进入一个循环,也包括在某个点上的++计数器
这就是数组和类似结构(如std::vector)最常用的方式
编辑:如果您的老师在某个时候任意要求使用指针算法,您有两个选择:
请注意,TemperatureArray[counter]直接转换为*TemperatureArray+计数器,因此您已经在使用指针算法,只是没有以明确的方式。你也可以做计数器[TemperatureArray]来向老师演示这一点
写入++温度数组而不是++计数器,并使用温度数组[0]或*温度数组而不是温度数组[counter]。不过,这是一种糟糕的编程实践。为你懒惰的老师感到羞耻,因为他不告诉你该做什么,或者为什么这样做也是个坏主意
正确的数组元素是TemperatureArray+计数器,正如您在代码中所做的那样。不幸的是,这只是一个指针。您需要取消对指针的引用以进行打印,或者在需要双精度值而不是指针时取消对指针的引用: 但这是违反直觉的。当您通过此赋值时,只需为数组编制索引;-
cout << setw(10) << counter + 1 << setw(10) << temperaturesArray[counter] << "\370C" << setw(10) << getFahrenheit(temperaturesArray[counter]) << "\370F" << endl;
查找任何一本体面的C++书籍中的指针撤销。它应该在那里
我被要求使用指针算法 然后是任何表达式,例如
temperaturesArray[ counter ]
可以替换为
*(temperaturesArray + counter )
对于数组,它们在功能上是相同的。我被要求使用指针算法。遗憾的是,我不知道怎么做。我也找不到任何合适的文档,看起来不应该那么难
temperaturesArray[ counter ]
*(temperaturesArray + counter )