在 C++ 中将指针转换为数组形式的问题?
Posted
技术标签:
【中文标题】在 C++ 中将指针转换为数组形式的问题?【英文标题】:Problem in converting pointer to array form in C++? 【发布时间】:2020-12-10 14:29:55 【问题描述】:我正在尝试将用于计算最大半径的函数从使用指针转换为使用长度数组 (L[10])。不幸的是,它显示了使用指针正确且数组形式不正确的不同结果,但我找不到此计算中的问题。请告诉我写入数组形式的问题。任何帮助将不胜感激。
L[10]=1,2,3,4,5,6,7,8,9,10
//Function in pointer form
double maxR()
double er,pr, *p1=L+3, *p2=L+9;
er=(L[0]*L[0])+(L[1]*L[1])+(L[2]*L[2]);
while(p1<p2)
pr=*p1*(*p1); p1++;
pr+=*p1*(*p1); p1++;
pr+=*p1*(*p1); p1++;
if(pr>er) er=pr;
return er;
//Function in array form
double maxR()
double er,pr;
er=(L[0]*L[0])+(L[1]*L[1])+(L[2]*L[2]);
int i=3;
while(L[i]<L[9])
pr=L[i]*L[i]; i++;
pr+=L[i]*L[i]; i++;
pr+=L[i]*L[i]; i++;
if(pr>er) er=pr;
return er;
【问题讨论】:
将while(p1<p2)
更改为while(p1<=p2)
或*p2=L+9
更改为*p2=L+10
和while(L[i]<L[9])
更改为while(i<10)
。
【参考方案1】:
改变
while(L[i]<L[9])
到
while(i<9)
【讨论】:
L[9] 将不计入此条件。以上是关于在 C++ 中将指针转换为数组形式的问题?的主要内容,如果未能解决你的问题,请参考以下文章
在 C / C++ 中将 int* 转换为 int(*)[n]