Heim > häufiges Problem > Hauptteil

Was ist der Unterschied zwischen *p+1 und *(p+1)

醉折花枝作酒筹
Freigeben: 2023-01-13 00:38:51
Original
21392 Leute haben es durchsucht

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.

Was ist der Unterschied zwischen *p+1 und *(p+1)

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的首地址赋给它。
Nach dem Login kopieren

2,

int a[5]={1,2,3,4,5};
int *p;//声明指针变量p
p = a;
Nach dem Login kopieren

Was ist der Unterschied zwischen *p+1 und *(p+1)

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
Nach dem Login kopieren

Ergebnis:

**p=*(*(p))=*(*(2003H))=*(3000H)=3000H。
&&p=&(&(p))=&(3001H),此时出错了,3001H 是个常数无法存放地址。
*&p=*(&(p))=*(3001H)=2003H,也就是*&p=p。
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage