Heim >Backend-Entwicklung >C++ >Analyse und Vergleich von *- und &-Operatoren in der C-Sprache

Analyse und Vergleich von *- und &-Operatoren in der C-Sprache

WBOY
WBOYOriginal
2024-04-03 14:24:01522Durchsuche

In der C-Sprache wird der Sternchenoperator (*) verwendet, um eine Zeigervariable zu dereferenzieren und den Wert der Variablen zu erhalten, auf die gezeigt wird; der Adressoperator (&) wird verwendet, um die Variablenadresse zu erhalten. Der spezifische Vergleich ist wie folgt: Dereferenzierungszeiger: * Adresse abrufen: & Zeigermultiplikation: * Bitoperation: & )-Operator und Adressoperator (&)-Operator sind zwei wichtige Operatoren, die häufig für Zeigeroperationen und Speicherverwaltung verwendet werden. In diesem Artikel werden ihre Verwendungszwecke und Unterschiede eingehend analysiert und praktische Beispiele zur Veranschaulichung bereitgestellt.

Analyse und Vergleich von *- und &-Operatoren in der C-SpracheStern (*)-Operator

Der Sternoperator wird verwendet, um eine Zeigervariable zu dereferenzieren und den Wert der Variablen abzurufen, auf die sie zeigt.

Syntax: *Zeigervariable

Zum Beispiel:

    int *ptr = &i;
  • printf("%d", *ptr); // Den Wert von i ausgeben
    • Adressoperator ( &)-Operator
    • Der Adressoperator wird verwendet, um die Adresse einer Variablen abzurufen und einen Zeiger auf die Variable zurückzugeben.
  • Syntax: & Variablenname

Zum Beispiel:

    int i = 10;
  • int *ptr = &i;
  • printf("%p", ptr); // Drucken Sie die Adresse von i
    •  Vergleichsoperatoren
    • Dereferenzierungszeiger
    • Get The Wert, der auf die Variable zeigt.
    • Bitweise Operation (logisches UND)
    Führen Sie eine logische UND-Operation für zwei Ganzzahlen aus

Praktischer Fall

Das Folgende ist ein praktischer Fall, der zeigt, wie die Operatoren * und & für Zeigeroperationen verwendet werden:
#include <stdio.h>

int main() {
    int i = 10;
    int *ptr = &i; // ptr指向i

    // 通过解引用指针获取i的值
    printf("i的值:%d\n", *ptr);

    // 通过取地址获取i的地址
    printf("i的地址:%p\n", &i);

    // 通过指针乘法计算ptr指向的内存空间大小
    int size = sizeof(*ptr);
    printf("ptr指向内存空间大小:%d字节\n", size);

    // 使用指针进行递增
    (*ptr)++; 

    // 打印递增后的i值
    printf("递增后的i:%d\n", i);

    return 0;
}
Ausgabe:
i的值:10
i的地址:0x7ffe5247ef4c
ptr指向内存空间大小:4字节
递增后的i:11

Das obige ist der detaillierte Inhalt vonAnalyse und Vergleich von *- und &-Operatoren in der C-Sprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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