1. ホーム
  2. c

[解決済み] C言語プログラミングにおける*と&の演算子の違いは何ですか?

2022-03-03 15:59:26

質問

私はこの概念を正しく理解しているかどうか確認しているところです。演算子で新しい変数を作成し、メモリ内に場所を確保します。そのため、不必要に変数とその値を重複させないように、&演算子はメソッドなどに値を渡す際に使用し、新しいコピーを作るのではなく、実際には変数の元のインスタンスを指す...ということで良いでしょうか?明らかに浅い理解なのですが、混同していないか確認したいのです。ありがとうございます。

どのように解決するのですか?

そうとも言えません。を混同していますね。 * 型名に現れる (変数を定義するために使われる) * 演算子を使用します。

int main() {
    int i;    // i is an int
    int *p;   // this is a * in a type-name. It means p is a pointer-to-int
    p = &i;   // use & operator to get a pointer to i, assign that to p.
    *p = 3;   // use * operator to "dereference" p, meaning 3 is assigned to i.
}