Heim >Backend-Entwicklung >C++ >Beherrschen Sie die Anwendungsszenarien und Unterschiede von * und & in der C-Sprache

Beherrschen Sie die Anwendungsszenarien und Unterschiede von * und & in der C-Sprache

WBOY
WBOYOriginal
2024-04-03 16:54:02830Durchsuche

Zeiger (*) speichern Variablenadressen und werden verwendet, um auf Variablenwerte zuzugreifen und diese zu ändern. Der Adressoperator (&) ruft die Adresse einer Variablen ab, die einem Zeiger zugewiesen oder an eine Funktion übergeben werden kann. Der Unterschied besteht darin, dass Zeiger dereferenziert werden können, während Adressoperatoren selbst nicht auf Variablenwerte zugreifen können.

Beherrschen Sie die Anwendungsszenarien und Unterschiede von * und & in der C-Sprache

Anwendungsszenarien und Unterschiede zwischen Zeiger (*) und Adressoperator (&) in der C-Sprache

Zeiger (*)

  • Deklaration: Verwenden Sie das Symbol * , gefolgt vom Variablennamen * 符号,后面跟变量名
  • 作用:存储变量的地址
  • 用途:

    • 访问和修改变量的值(通过解引用)
    • 传递变量的地址(作为函数的参数)
    • 实现动态内存分配

地址运算符(&)

  • 声明:使用 & 符号,前面是变量名
  • 作用:获取变量的地址
  • 用途:

    • 将变量的地址赋值给指针
    • 传递变量的地址(作为函数的参数)

区别

  • 指针指向变量的地址,而地址运算符获取变量的地址。
  • 指针可以解引用以访问和修改变量的值,而地址运算符本身不能访问变量的值。

实战案例

以下代码示例演示了指针和地址运算符在 C 语言中的使用:

#include <stdio.h>

int main() {
    int x = 10;

    // 获取 x 的地址并将其赋值给指针 p
    int *p = &x;

    // 使用解引用运算符 * 访问和修改 x 的值
    *p += 5;

    // 打印修改后的 x 值
    printf("x: %d\n", x); // 输出:15

    // 传递 p 指针作为函数的参数
    myFunction(p);

    return 0;
}

void myFunction(int *ptr) {
    // 修改指向值的变量
    *ptr = 20;
}

在这个示例中:

  • *p 解引用指针 p 并访问指向的变量 x。
  • 函数 myFunction 接收指向 x 的指针 p,并通过 *ptr
Funktion: 🎜 Speichern Sie die Adresse der Variablen 🎜🎜🎜🎜 Zweck: 🎜🎜🎜🎜 Greifen Sie auf den Wert der Variablen zu und ändern Sie ihn (durch Dereferenzierung) 🎜🎜 Übergeben Sie die Adresse der Variablen (als ein Parameter der Funktion) 🎜 🎜Dynamische Speicherzuweisung implementieren🎜🎜🎜🎜🎜🎜Adressoperator (&)🎜🎜🎜🎜🎜Deklaration: 🎜Verwenden Sie das Symbol &, dem der Variablenname vorangestellt ist🎜🎜 🎜Funktion: 🎜Adresse der Variablen abrufen 🎜🎜🎜🎜Zweck: 🎜🎜🎜🎜Weisen Sie die Adresse einer Variablen einem Zeiger zu 🎜🎜Übergeben Sie die Adresse einer Variablen (als Parameter einer Funktion) 🎜🎜🎜🎜🎜 🎜Differenz🎜🎜🎜🎜Der Zeiger zeigt auf die Adresse der Variablen, während der Adressoperator die Adresse der Variablen abruft. 🎜🎜Zeiger können dereferenziert werden, um auf den Wert einer Variablen zuzugreifen und ihn zu ändern, während der Adressoperator selbst nicht auf den Wert einer Variablen zugreifen kann. 🎜🎜🎜🎜Praktischer Fall🎜🎜🎜Das folgende Codebeispiel demonstriert die Verwendung von Zeiger- und Adressoperatoren in der C-Sprache: 🎜rrreee🎜In diesem Beispiel: 🎜🎜🎜*p Dereferenzieren Sie den Zeiger p und greifen Sie auf den zu Variable x zeigte auf. 🎜🎜Die Funktion myFunction empfängt den Zeiger p, der auf x zeigt, und ändert den Wert von x durch *ptr. 🎜🎜

Das obige ist der detaillierte Inhalt vonBeherrschen Sie die Anwendungsszenarien und Unterschiede von * und & 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