a&&(c=0,printf("%d",b)); a&&printf("%d",b,c=0);printf()の括弧を利用することで演算子の順序を変え、余分な括弧を省略しています。
引数は後ろから評価されるので上のように書くと計算の順番が変わりません。
自作の再帰関数の中でローカル変数を使いたい場合、引数を増やしてしまう方法があります。
cは初期化されていないのでどこかで代入する必要があります。
f(a,b,c){...}main(){f(0,1);}上の場合だとcという変数を増やしてローカル変数として利用しています。
cは初期化されていないのでどこかで代入する必要があります。
引数を省略した場合、その前に呼び出した関数の引数が残っている可能性が高いです。
char s[99];main(){gets(s);puts();}このコードだとputsの引数にはsが入ります。
コメントをかく