0

次のように、ファイル間で配列にアクセスしようとしています。

int option[NUMBER_OF_OPTIONS];
...
addition(&option[0], num1, num2); 
...
printf("%d", option[0]);

それが最初の(メイン)ファイルです

2番目はこのようなものです。

void addition(int * option, unsigned number1, unsigned number2)
{
int total = number1 + number2;
...
*option ++;
}

そんな感じ。追加方法は気にしないでください。

問題は、*option ++; のように、printf メソッドが常に 0 を出力することです。決して実行/読み取りされません。

これを修正するにはどうすればよいですか?

ちなみに、「*option++;」で警告が出ます。ファイルの内容: 警告: 計算された値は使用されません。

この問題を解決するにはどうすればよいですか?

ありがとうございました!

4

3 に答える 3

2

++より優先度が高い*。何もしない*option ++;と同じ*(option ++);です (そのため、警告が表示されます)。

これを試して:

(*option) ++;

于 2013-07-31T12:48:16.793 に答える
1

*よりゆるくバインド++*option ++ = *(option++)ます。配列の値を変更するには、次のように記述する必要があります(*option)++。つまり、接尾辞のインクリメントは逆参照演算子よりも優先されます。

于 2013-07-31T12:49:18.383 に答える