在 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&lt;p2) 更改为while(p1&lt;=p2)*p2=L+9 更改为*p2=L+10while(L[i]&lt;L[9]) 更改为while(i&lt;10) 【参考方案1】:

改变

while(L[i]<L[9])

while(i<9) 

【讨论】:

L[9] 将不计入此条件。

以上是关于在 C++ 中将指针转换为数组形式的问题?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C++ 中将指针转换/转换为引用

在 C++ 中将指针转换为 volatile void**

在 C / C++ 中将 int* 转换为 int(*)[n]

在 C++ 中将静态数组声明为指针

在 C 和 C++ 中将 int 值转换为 char 指针差异

如何在c ++中将int数组转换为字节数组[重复]