C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++の++iとi++の違いは何ですか?


++のサフィックスバージョンとプレフィックスバージョンには大きな違いがあります。

  • プレフィックスバージョン(つまり、++ i)では、iの値がインクリメントされ、式の値はiの新しい値になります。したがって、基本的には、最初にインクリメントしてから、式に値を割り当てます。
  • postfixバージョン(つまり、i ++)では、iの値はインクリメントされますが、式の値はiの元の値です。したがって、基本的には、最初に式に値を割り当ててから、変数をインクリメントします。

理解を深めるために、いくつかのコードを見てみましょう-

#include<iostream>
using namespace std;
int main() {
   int x = 3, y, z;
   y = x++;
   z = ++x;
   cout << x << ", " << y << ", " << z;
   return 0;
}
出力

これにより、出力が得られます-

5, 3, 5

これはなぜですか?詳細を見てみましょう-

  • xを3に初期化します
  • 式x++を評価して得られる値をyに割り当てます。つまり、インクリメントする前のxの値を割り当ててから、xをインクリメントします。
  • xをインクリメントしてから、式++ xを評価して得られる値、つまりインクリメント後のxの値をzに割り当てます。
  • これらの値を印刷します

  1. C#の値渡しと参照パラメーターの違いは何ですか?

    参照パラメータ 参照パラメータは、変数のメモリ位置への参照です。参照パラメータは、メソッドに提供される実際のパラメータと同じメモリ位置を表します。 値パラメーターとは異なり、参照によってパラメーターを渡す場合、これらのパラメーターの新しい保管場所は作成されません。 値渡し これは、パラメータをメソッドに渡すためのデフォルトのメカニズムです。このメカニズムでは、メソッドが呼び出されると、値パラメーターごとに新しい保存場所が作成されます。 実際のパラメータの値がそれらにコピーされます。したがって、メソッド内のパラメーターに加えられた変更は、引数に影響を与えません。

  2. C#での宣言と定義の違いは何ですか?

    宣言とは、変数が宣言され、メモリが割り当てられるだけで、値が設定されないことを意味します。 ただし、定義とは、変数が初期化されていることを意味します。 同じことが変数、配列、コレクションなどにも当てはまります。 変数 変数を宣言します。 int x; 値を定義して割り当てましょう。 x = 10; 配列 配列を宣言します。 int [] n // declaring int n= new int[10]; // initializing 値を割り当てましょう。 n[0] = 100; n[1] = 200