-3
私はfgetcを使って、一度に1文字ずつテキストファイルからストリームを読み込み、何らかの理由で文字を並べ替えます。テキストファイルはC fgetc同じ関数のパラメータとして同時に使用されたときの奇妙な振る舞い
void newFunction(int i, int j, int k);
int main()
{
FILE *fp;
/...opens text file.../
newFunction(fgetc(fp), fgetc(fp), fgetc(fp));
}
void newFunction(int i, int j, int k)
{
printf("%d %d %d", i, j, k,);
}
を「ABC」のようなものが含まれている私はa b c
を期待していますが、なぜ私のコードはc b a
を与えるのでしょうか?
引数がどの順序で評価されるかは定義されていません。 –
@Someprogrammerdudu優先順位はどうですか?私はかっこで囲むようにします。 – reiallenramos
*演算子*の優先順位はそれとは関係ありません。引数は任意の順序で評価できます。どのfgetcコールが最初に呼び出されるかはわかりません。読んでください。 [この評価順序の参照](http://en.cppreference.com/w/c/language/eval_order)を参照してください。 –