ホームページ よくある問題 *p+1 と *(p+1) の違いは何ですか

*p+1 と *(p+1) の違いは何ですか

Jul 09, 2021 am 11:54 AM

違いは次のとおりです: 1. *p はこのポインタが指すメモリ アドレスに格納されている内容を表し、p はポインタ変数の名前を表します; 2. *p は通常、次と一致する変数または定数です。ポインタのタイプ、p 出力は 16 進数です; 3. *p はプログラムにそのアドレスからデータを取得するように指示し、p はアドレスを格納します。

*p+1 と *(p+1) の違いは何ですか

このチュートリアルの動作環境: Windows 7 システム、C 17 バージョン、Dell G3 コンピューター。

C 言語では、*p と p はポインタ変数を表すポインタでよく使用されます。*p と p の違いは次のとおりです:

1。意味は異なります

* p は、このポインタが指すメモリ アドレスに格納されている内容を表します。

p はポインタ変数の名前を表し、ポインタ変数が指すメモリ アドレスを参照します。

2. 出力形式は異なります

*p は通常、ポインター型と一致する変数または定数です。

p は 16 進数を出力し、ポインタのアドレスを出力します。

3. さまざまな機能

*p プログラムをそのアドレスに移動させてデータを取得させます。

p にはアドレスが格納されます。

例:

1、

1

2

int a[5]={1,2,3,4,5};

int *p=a;//这是在定义指针变量p的同时就直接给它初始化,即把数组a的首地址赋给它。

ログイン後にコピー

2、

1

2

3

int a[5]={1,2,3,4,5};

int *p;//声明指针变量p

p = a;

ログイン後にコピー

*p+1 と *(p+1) の違いは何ですか

拡張情報

(*p) 演算は、p の値をアドレス空間の値として返す演算です。 (&p) は、p が宣言されたときにオープンされたアドレスを返す演算です。代入ステートメントを使用して、メモリ アドレスに値を割り当てることができます。

例:

1

2

3

int *p;

p=2003H;

*p=3000H

ログイン後にコピー

結果:

1

2

3

**p=*(*(p))=*(*(2003H))=*(3000H)=3000H。

&&p=&(&(p))=&(3001H),此时出错了,3001H 是个常数无法存放地址。

*&p=*(&(p))=*(3001H)=2003H,也就是*&p=p。

ログイン後にコピー

推奨チュートリアル: "C#"

以上が*p+1 と *(p+1) の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)