Heim häufiges Problem Was ist der Unterschied zwischen *p+1 und *(p+1)

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

Jul 09, 2021 am 11:54 AM

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!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)