そもそもCとかC++の初心者で?のことを良く理解していないレベルに読みにくいよ
だいいち、そのレベルなら ifで書けばいいだろうと。
そもそも
while( (*p++ = *c++) != '\0' );
c = param [ a>=0?a:0 ];
みたいな、使い方 をして 他の演算の引数に3項演算子を使ってるならわかるが
単なる代入だけで、しかも複文でネストすんならifで書けや!
ネストするってことは条件があるていど複雑ってことで、あとで、デバッグ用のif入れたりprintf入れたり改造する可能性があるってことを考慮してくれ。
変に?をネストさせて、『他人が間違えて』間違った改造いれたりしたら、どうするつもりなんだと?
間違った奴が悪い?複雑なネストして、間違いやすいコードを残した奴も悪いよ。
簡単にいえばたった、5行のスパゲティ。