数组里面的另一个大小

时间:2016-03-03 08:53:19

标签: c arrays pointers

所以我有一个程序需要增加第一个数组中的值,无论第二个数组设置的位置如何。

即:用户将数字5输入数组。程序然后转到第二个数组中的那个位置(5)并将其值增加1。到目前为止,代码工作正常,但我必须使用Pointer表示法而不是下标,并且正在努力使用正确的语法。这是代码:

void enter_into_frequency(int *frequency_temp, int *user_numbers_temp)
{
     int i;
     for(i=0; i<NO_OF_NUMS; i++)
     {
          //Frequency array, with position as whatever number the user entered
          frequency_temp[user_numbers_temp[i]]++; //Need this in pointer notation
     }
}

2 个答案:

答案 0 :(得分:3)

指针表示法中需要的代码如下:

 ( *(frequency_temp + *(user_numbers_temp + i)) )++;

您可以使用* - 运算符取消引用指针,如果向指针添加偏移量,则可以取消引用数组。

您还可以查看此What does “dereferencing” a pointer mean?

答案 1 :(得分:2)

( *( frequency_temp + ( *(user_numbers_temp + i) ) ) )++;

这可以代替你现在拥有的东西。

/*  user_numbers_temp[i]  ->  *(user_numbers_temp+i)    */
/*  frequency_temp[user_numbers_temp[i]]  -> *(frequency_temp+(*(user_numbers_temp+i))) */

然后应用++运算符。