Der Unterschied ist: 1. *p stellt den Inhalt dar, der in der Speicheradresse gespeichert ist, auf die dieser Zeiger zeigt, p stellt den Namen einer Zeigervariablen dar. 2. *p ist im Allgemeinen eine Variable oder Konstante, die mit dem Zeigertyp übereinstimmt. und p gibt eine Hexadezimalzahl aus. 3. *p weist das Programm an, Daten von dieser Adresse abzurufen, und p speichert die Adresse.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, C++17-Version, Dell G3-Computer.
In der C-Sprache werden *p und p häufig in Zeigern verwendet, um eine Zeigervariable darzustellen. Der Unterschied zwischen *p und p:
1 Die Bedeutungen sind unterschiedlich.
*p stellt den in der Speicheradresse gespeicherten Inhalt dar durch diesen Zeiger angezeigt.
p stellt den Namen einer Zeigervariablen dar, der auf die Speicheradresse verweist, auf die diese Zeigervariable zeigt.
2. Das Ausgabeformat ist unterschiedlich
*p ist im Allgemeinen eine Variable oder Konstante, die mit dem Zeigertyp übereinstimmt.
p gibt eine Hexadezimalzahl und die Adresse eines Zeigers aus.
3. Verschiedene Funktionen
*p besteht darin, das Programm an diese Adresse gehen zu lassen, um Daten abzurufen.
p speichert die Adresse.
Beispiele:
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;
Erweiterte Informationen
(*p)-Operation ist eine Operation, die den Wert von p als Wert des Adressraums zurückgibt. (&p) ist eine Operation, die die Adresse zurückgibt, die geöffnet wurde, als p deklariert wurde. Sie können Zuweisungsanweisungen verwenden, um Speicheradressen Werte zuzuweisen.
Beispiel:
int *p; p=2003H; *p=3000H
Ergebnis:
**p=*(*(p))=*(*(2003H))=*(3000H)=3000H。 &&p=&(&(p))=&(3001H),此时出错了,3001H 是个常数无法存放地址。 *&p=*(&(p))=*(3001H)=2003H,也就是*&p=p。
Empfohlenes Tutorial: „C#“
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen *p+1 und *(p+1). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!