タグ付けされた質問 「operators」

演算子は、データの計算と比較を実行するために、ほぼすべてのプログラミング言語とコーディング言語で使用される記号です。


11
x + =はx = x + aよりも速いですか?
私はStroustrupの「C ++プログラミング言語」を読んでいました。彼は、変数に何かを追加する2つの方法のうちの1つだと言っています。 x = x + a; そして x += a; 彼は+=それがよりよく実行される可能性が高いので好む。彼はそれもより速く動くことを意味すると思います。 しかし、それは本当にですか?コンパイラなどに依存する場合、どうすれば確認できますか?

1
ifステートメントでの&&演算子の使用
私には3つの変数があります: VAR1="file1" VAR2="file2" VAR3="file3" 次の&&ようなifステートメントでand()演算子を使用する方法: if [ -f $VAR1 && -f $VAR2 && -f $VAR3 ] then ... fi このコードを書くとエラーが発生します。正しい方法は何ですか?




9
+演算子はCでどのように実装されていますか?
どのように原始的な事業者などの理解場合は+、-、*および/Cで実装されている、私はから次のスニペットを見つけた面白い答え。 // replaces the + operator int add(int x, int y) { while(x) { int t = (x & y) <<1; y ^= x; x = t; } return y; } この関数+は、バックグラウンドで実際にどのように機能するかを示しているようです。しかし、それを理解するには混乱しすぎます。このような操作は、コンパイラによって生成されたアセンブリディレクティブを使用して長い間行われていると思いました。 +オペレーターは、MOST実装に投稿されたコードとして実装されていますか?これは、2の補数または他の実装に依存する機能を利用していますか?

3
(++ i)++が有効なのに「++ i ++」が無効なのはなぜですか?
次のコードを考えてみましょう: int main() { int i = 2; int b = ++i++; return 3; } 次のエラーでコンパイルされます。 <source>: In function 'int main()': <source>:3:16: error: lvalue required as increment operand 3 | int b = ++i++; | ^~ これは私には公平に聞こえます。後置インクリメントはコードのように解析されて、接頭増分よりも高い優先度を有するint b = ++(i++);とi右辺値です。したがってエラー。 デフォルトの優先順位を上書きするために、括弧を付けたこのバリアントについて考えてみましょう。 int main() { int i = 2; int b …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.