首页 > 解决方案 > 如何不使指向数组 [0] 的指针在每个周期修改数组 [0]

问题描述

Arr[0]当我试图通过使用算术指针创建 2 个循环来给出一个完整的最大值和最小值数组时,我发现for. 我通过将第一个值保存在我再次分配的另一个变量中来解决这个问题,Arr[0]同时还将我的指针重置到起始位置。

有没有办法防止这种情况发生?

我尝试使用所有最常见的指针算术类型,并用于printf("\n array 0 = %d",Arr[0])显示Arr[0]每次交互的值。

int main
{
    int count; int Arr[3]; //array is full of int values
    int *ptr=&Arr[0]; int *max=&Arr[0];
    ...
    for(count=0;count<10;count++)
    {
         if(*ptr>*max)
         {
             *max=*ptr;
         }
         ptr=ptr+1;
    }
    printf("%d",*max);
    ...
}

标签: carrayspointers

解决方案


*max=*ptr;

你的意思是

max=ptr;

不要*盲目地把指针变量的每次使用都放在前面,而只是在你想遵循它们的时候。当您想要更改指针指向的位置时,没有*.

另外:count<10应该count<3与数组声明相匹配。


推荐阅读