1

私はいくつかのコードを読んでいて、このことに出くわしました。私は今、この行を保存する全体のコンテキストを持っていません。

cout<<(*--*++ptr+1)<< endl;

これは正常にコンパイルされ、値を入力すると機能します。

その宣言はこんな感じです。

char ***ptr ;

この演算子とは何ですか?標準に含まれていますか?

4

1 に答える 1

7

これは単一の演算子ではなく、いくつかの単項演算子の組み合わせです。次のように解析されます。

*(--(*(++ptr))) + 1

したがって、ptr1は最初にインクリメントされ、次に逆参照され、次にその値がデクリメントされ、再度参照解除されます。

于 2012-10-23T18:37:33.603 に答える