Latest web development tutorials

言語のポインタを移動します

ポインタ言語は習得が容易であるGO、GO言語のポインタをより簡単にいくつかのタスクを実行することができます。

私たちは言語囲碁ポインタを学ぶためにステップバイステップしてみましょう。

我々は、すべての変数が参照コンピュータのメモリアドレスに便利なプレースホルダであることを知っています。

対応する変数のメモリアドレスを返します。それを使用する前に変数に、アドレス言語文字をフェッチ行くです&。

次の例では、メモリ内の変数のアドレスを示しています。

package main

import "fmt"

func main() {
   var a int = 10   

   fmt.Printf("变量的地址: %x\n", &a  )
}

上記のコードの出力結果を実行します。

变量的地址: 20818a220

今、私たちは、メモリアドレスとどのようにそれをアクセスするために何を理解していること。 次に、我々はポインタを紹介します。


ポインタとは何ですか

ポインタは、メモリアドレスの値を指す任意の変数値メモリアドレスを指すことができます。

変数と定数と同じように、ポインタを使用する前に、あなたはポインタを宣言する必要があります。 次の形式でポインタ宣言:

var var_name *var-type

VAR型ポインタ型は、VAR_NAMEはアスタリスクがポインタとして変数を指定するために使用され、ポインタ変数名です。 以下は、有効なポインタの宣言です:

var ip *int        /* 指向整型*/
var fp *float32    /* 指向浮点型 */

この場合には、intへのポインタとのfloat32ポインタです。


ポインタの使い方

ポインタのプロセス:

  • ポインタ変数を定義します。
  • ポインタ変数。
  • アドレスポインタ変数アクセスポイントの値。

ポインタ型の前にへのポインタポイントを得るために、アスタリスク(接頭辞)を追加します。

package main

import "fmt"

func main() {
   var a int= 20   /* 声明实际变量 */
   var ip *int        /* 声明指针变量 */

   ip = &a  /* 指针变量的存储地址 */

   fmt.Printf("a 变量的地址是: %x\n", &a  )

   /* 指针变量的存储地址 */
   fmt.Printf("ip 变量的存储地址: %x\n", ip )

   /* 使用指针访问值 */
   fmt.Printf("*ip 变量的值: %d\n", *ip )
}

上記の出力の実装の例としては、次のとおりです。

a 变量的地址是: 20818a220
ip 变量的存储地址: 20818a220
*ip 变量的值: 20

NULLポインタを移動します

ポインタを任意の変数に割り当てられていない定義された後にすると、その値はnilです。

NULLポインタもNULLポインタと呼ばれています。

すべてのような概念やその他の言語、なし、ゼロ、NULLでヌルnilが、ゼロまたは空白の値を参照してください。

ポインタ変数は、一般的にPTRと略記されます。

次の例を参照してください:

package main

import "fmt"

func main() {
   var  ptr *int

   fmt.Printf("ptr 的值为 : %x\n", ptr  )
}

上の例の出力は、次のとおりです。

ptr 的值为 : 0

nullポインタの判断:

if(ptr != nil)     /* ptr 不是空指针 */
if(ptr == nil)    /* ptr 是空指针 */

もっとポインタを移動します

次に、我々はより多くの言語は、ポインタのアプリケーションを移動します紹介します:

コンテンツ 説明
ポインタ配列を行きます あなたはアドレスを格納するポインタ配列を定義することができます
ポインタへのポインタを移動します ポインタへの支援ポインタを移動します
渡された関数ポインタパラメータのように移動します 関数呼び出しは、その値を変更することができます参照またはアドレス上院による