Die neueste Zusammenfassung von Themen im Zusammenhang mit dem Verständnis und der Verwendung von Zeigern in der C-Sprache

php是最好的语言
Freigeben: 2018-07-26 18:11:57
Original
1715 Leute haben es durchsucht

Definition: Ein Zeiger ist eine Variable, deren Wert die Adresse einer anderen Variablen ist. Die Adresse repräsentiert den Speicherort. Man muss bedenken, dass die Array-Variable selbst ein Zeiger ist.

Adressentyp

Kommt es nicht seltsam vor, dass ein Zeiger eine Adresse darstellt? Schauen Sie sich ein Beispiel an:

int    *ip;    /* 一个整型的指针 */

double *dp;    /* 一个 double 型的指针 */

float  *fp;    /* 一个浮点型的指针 */

char   *ch;     /* 一个字符型的指针 */
Nach dem Login kopieren

Tatsächlich ist ein Zeiger immer nur eine Hexadezimalzahl, die eine Adresse darstellt. Der sogenannte Typ bezieht sich auf den Typ der Variablen, auf die der Zeiger zeigt.

Zeiger verwenden

Wie man einen Zeiger definiert, sollten Sie aus dem vorherigen Beispiel kennen, dann wie man die hexadezimale Adresse und die Daten ausgibt, auf die der Zeiger zeigt:

//通过&运算符获取了i的地址并保存到intP中去

int *intP; = &i;

printf("intP存储的地址为:%p,存储的地址指向的数据为:%d\n", intP, *intP);
Nach dem Login kopieren

Zeiger können folgende Operationen ausführen: ++, --, +, -

Darüber hinaus können Zeiger auch mit relationalen Operatoren wie ==, < und > verglichen werden.

int intArr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

//先定义一个指针执行数组第一个元素

int *intArrP = &intArr[0];

printf("此时intArrP存储的地址为:%p,数据为:%d\n", intArrP, *intArrP);

//自增一下看看结果(每增加一次,它都将指向下一个整数位置)

intArrP++;

printf("自增以后intArrP存储的地址为:%p,数据为:%d\n", intArrP, *intArrP);
Nach dem Login kopieren

Zeiger können auch auf Zeiger zeigen

int data = 5201314;

int *p1 = &data;

int **p2 = &p1;

printf("%d\n", data); //都是5201314

printf("%d\n", *p1);

printf("%d\n", **p2);
Nach dem Login kopieren

Strukturen und Zeiger

Die Verwendung von Zeigern in Strukturen ist etwas Besonderes, vor allem wegen der Besonderheit der Struktur selbst, wenn Sie sie verwenden möchten In der Struktur wird ein Wert im Allgemeinen in zwei Situationen unterteilt: die Struktur selbst und den Zeiger, der auf die Struktur zeigt. Weitere Informationen finden Sie im folgenden Beispiel:

struct Node

{

    int val;
    
};

//先建立一个结构体数据

struct Node node;

node.val = 1;

struct Node *nodeP; //创建一个指向刚刚的结构体的指针

nodeP = &node;

printf("%d\n", nodeP->val);//指向结构体的指针用->

printf("%d\n", node.val);//结构体自身用.
Nach dem Login kopieren

Verwandte Artikel:

Das obige ist der detaillierte Inhalt vonDie neueste Zusammenfassung von Themen im Zusammenhang mit dem Verständnis und der Verwendung von Zeigern in der C-Sprache. 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