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

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

醉折花枝作酒筹
リリース: 2023-01-13 00:38:51
オリジナル
21443 人が閲覧しました

違いは次のとおりです: 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、

int a[5]={1,2,3,4,5};
int *p=a;//这是在定义指针变量p的同时就直接给它初始化,即把数组a的首地址赋给它。
ログイン後にコピー

2、

int a[5]={1,2,3,4,5};
int *p;//声明指针变量p
p = a;
ログイン後にコピー

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

拡張情報

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

例:

int *p;
p=2003H;
*p=3000H
ログイン後にコピー

結果:

**p=*(*(p))=*(*(2003H))=*(3000H)=3000H。
&&p=&(&(p))=&(3001H),此时出错了,3001H 是个常数无法存放地址。
*&p=*(&(p))=*(3001H)=2003H,也就是*&p=p。
ログイン後にコピー

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

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

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