#include<stdio.h>
void main()
{
int i=10;
printf("%d %d %d\n",a,--a,++a); // output 10 10 10
}
このコードはどのように同じ出力を提供しますか? これらの増分および減分演算子の優先順位は何ですか?このprintf()関数はどのようにこれらの値を出力しますか?
#include<stdio.h>
void main()
{
int i=10;
printf("%d %d %d\n",a,--a,++a); // output 10 10 10
}
このコードはどのように同じ出力を提供しますか? これらの増分および減分演算子の優先順位は何ですか?このprintf()関数はどのようにこれらの値を出力しますか?
それはあなたのために同じ出力できます - - 印刷後、元の値とそれは(または11 ++ a)は9になった多くの言語のよう
Cは熱心evalutionを使用する(https://en.wikipedia.org/wiki/Eager_evaluation)
これは、printf
の引数がの前に評価され、の前にprintf
関数が呼び出されたことを意味します。コンパイラの
、あなたのコードが
#include<stdio.h>
void main()
{
int a=10;
a;
--a;
++a;
printf("%d %d %d\n",a,a,a); // output 10 10 10
}
が正しくありません。評価順序は不明であり、プログラムには未定義の動作があります。それは何にも相当しません。 –
のように見え++と++の違いは何ですか? –
あなたはそれをもっと説明できますか? –
@VladimirTsykunov ++ aはaの値をインクリメントし、インクリメントされた値を返します。 a ++はaの値をインクリメントしますが、元の値を返します。 – Hoffman