Heim > Artikel > Backend-Entwicklung > Was ist der Unterschied zwischen *p und p in der C-Sprache?
Unterschied: 1. Die Bedeutung ist unterschiedlich. „*p“ stellt den Inhalt dar, der in der Speicheradresse gespeichert ist, auf die dieser Zeiger zeigt . 2. Die Ausgabeformate sind unterschiedlich. „*p“ gibt normalerweise eine Variable oder Konstante vom gleichen Typ aus wie der Zeiger. „p“ gibt eine Hexadezimalzahl und die Adresse eines Zeigers aus. 3. Die Funktionen sind unterschiedlich. „*p“ weist das Programm an, zu dieser Adresse zu gehen, um Daten abzurufen, und „p“ wird zum Speichern der Adresse verwendet.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, c99-Version, Dell G3-Computer.
*p
und p
*p
、p
C语言中,*p 和p都常用在指针当中表示一个指针变量。
想要利用指针,需先理解地址和数据:你可以想象有很多盒子,每个盒子有对应的号码,那个号码叫做“地址”,而盒子里放的东西叫做“数据”。
p是指针变量,用来存放地址,你可以认为是上面所说的盒子的号码,“ * ”是解引用操作符,你可以把它理解成打开盒子,p就是打开p号盒子,取出里面的数据。
简单来说,你记住,p存放的是地址,而p是让程序去那个地址取出数据。
在C 语言中*号有三个用途,分别是:
乘号,用做乘法运算,例如5*6。
申明一个指针,在定义指针变量时使用,例如int *p;。
间接运算符,取得指针所指向的内存中的值,例如printf("%d",*p);。
*p
和p
的区别1、表示的含义不同
*p
表示此指针指向的内存地址中存放的内容。
p
表示一个指针变量的名字,指此指针变量所指向的内存地址。
2、输出的格式不同
*p
一般是一个和指针类型一致的变量或者常量。
p
输出的是一个16进制数, 输出一个指针的地址。
3、功能不同
*p
是让程序去那个地址取出数据。
p存放的是地址。
#include <stdio.h> int main(void){ int x=3; int *p,*q; p=&x,q=&x; printf("%d\n",*p++); printf("%d\n",(*q)++); printf("%d\n",x); }
输出结果为:3,3,4;
解释:
*p
和**p
的区别int *p
:一级指针,表示p所指向的地址里面存放的是一个int类型的值
int **p
*p
und p
in der C-Sprache🎜🎜 1, stellen unterschiedliche Bedeutungen dar🎜🎜*p
stellt den Inhalt dar, der in der Speicheradresse gespeichert ist, auf die dieser Zeiger zeigt. 🎜🎜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. 🎜🎜🎜pspeichert die Adresse. 🎜🎜🎜🎜Beispiel:🎜int i=10; //定义了一个整型变量 int *p=&i; //定义了一个指针指向这个变量 int **p1=&p; //定义了一个二级指针指向p指针🎜Das Ausgabeergebnis ist: 3, 3, 4;🎜 🎜 🎜🎜Erklärung: 🎜 🎜🎜🎜🎜 Erweiterungswissen: Der Unterschied zwischen
*p
und **p
🎜int *p
: Zeiger der ersten Ebene , repräsentiert p Die Adresse, auf die gezeigt wird, speichert einen Wert vom Typ int 🎜🎜int **p
: Ein sekundärer Zeiger, der angibt, dass die Adresse, auf die p zeigt, einen Zeiger auf den Typ int speichert (d. h. p Der gezeigte Adresse speichert einen Zeiger der ersten Ebene, der auf int zeigt)🎜🎜Zum Beispiel: 🎜printf("i=[%d]\n",*p); printf("i=[%d]\n",**p1);🎜Dann lautet die Methode zum Extrahieren des Werts von 10:🎜rrreee🎜🎜🎜🎜Verwandte Empfehlungen: „🎜C Video Tutorial🎜“🎜
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen *p und p in der C-Sprache?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!