0

C プログラムでタイプミスをしてしまい、コンパイルした理由と構文のポイントがわかりません。乗算代入演算子を使用しようとしました*=が、誤って*-. 次に例を示します。

#include <stdio.h>
int main()
{
    double foo = 1.2;
    foo *- 3.4; /* I meant to type foo *= 3.4; */
    printf("%f\n", foo);
    return 0;
}

(または g++)でコードをコンパイルするとgcc -Wall ctest.c、次の出力が得られます。

ctest.c: In function `int main()':
ctest.c:5 warning: statement has no effect

printfこのプログラムを実行したときのステートメントの出力は です1.200000。したがって、ステートメントは実際には の値に影響を与えないように見えますfoo

*-オペレーターとは?ステートメントが効果がないにもかかわらず、その構文がコンパイルされる正当な理由はありますか?

4

1 に答える 1