golang ポインタと参照の違い

下次还敢
リリース: 2024-04-21 00:52:05
オリジナル
758 人が閲覧しました

ポインタと参照は両方とも変数に間接的にアクセスするために使用されます。ポインタは変数アドレスを指し、変数に直接アクセスします。参照は、変数へのポインターを格納し、変数に間接的にアクセスするエイリアスです。ポインタは * で定義および逆参照され、ポインタを変更すると変数に影響します。参照するには、& を使用してアドレスを取得し、* を使用してアドレスを参照します。参照を変更しても変数には影響しません。ポインタは、変数のみを指すことができるポインタを含め、任意の変数を指すことができます。

golang ポインタと参照の違い

Golang ポインタと参照

ポインタと参照の違い

ポインタと参照は、Golang で変数に間接的にアクセスするために使用されるメカニズムです。主な違いは次のとおりです。

  • ポインタは、別の変数のアドレスを保持する変数です。変数を直接指します。
  • 参照は、別の変数へのポインターを格納するエイリアスです。参照は変数を直接指していません。

ポインタ

  • # 表記を使用して、ポインタを定義および逆参照します。
  • ポインタは、値を直接含むのではなく、変数の値を指します。
  • ポインターを変更すると、ポイントされた変数に影響します。
  • ポインタは、他のポインタを含む任意の型の変数を指すことができます。

#参照

    変数のアドレスを取得するには、
  • & シンボルを使用します。 ## シンボルを参照してアドレスを取得します。 参照は常に変数のアドレスを指します。
  • 参照を変更しても、ポイントされた変数には影響しません。
  • 参照は、ポインターではなく、他の変数のみを指すことができます。

<code class="go">package main

import "fmt"

func main() {
    // 创建一个变量
    x := 10

    // 创建一个指向 x 的指针
    p := &x

    // 创建一个引用 x 的引用
    q := &x

    // 通过指针修改变量
    *p = 20

    // 引用不会影响变量
    *q++

    // 打印结果
    fmt.Println("x:", x) // 输出: 20
}</code>
ログイン後にコピー
この例では:

p
  • へのポインタです。 x のポインタ、*p を変更すると、#x の値が更新されます。 q
  • x への参照であり、*q を変更しても x の値は更新されません。

以上がgolang ポインタと参照の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート