違いは次のとおりです: 1. *p はこのポインタが指すメモリ アドレスに格納されている内容を表し、p はポインタ変数の名前を表します; 2. *p は通常、次と一致する変数または定数です。ポインタのタイプ、p 出力は 16 進数です; 3. *p はプログラムにそのアドレスからデータを取得するように指示し、p はアドレスを格納します。
このチュートリアルの動作環境: 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) 演算は、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 サイトの他の関連記事を参照してください。