首頁 >後端開發 >C++ >掌握C語言中*和&的應用場景與區別

掌握C語言中*和&的應用場景與區別

WBOY
WBOY原創
2024-04-03 16:54:02835瀏覽

指標(*)儲存變數位址,用於存取和修改變數值。位址運算子(&)取得變數位址,可將其賦值給指標或傳遞給函數。差別在於:指標可解引用,而位址運算子本身不能存取變數值。

掌握C語言中*和&的應用場景與區別

C語言中指標(*)和位址運算子(&)的應用場景與差異

##指標(*)

  • 宣告:使用* 符號,後面跟著變數名稱
  • ##作用:
  • 儲存變數的位址
  • 用途:

    存取和修改變數的值(透過解引用)
    • 傳遞變量的位址(作為函數的參數)
    • 實作動態記憶體分配
#位址運算子(&)

    #宣告:
  • 使用& 符號,前面是變數名稱
  • 作用:
  • 取得變數的位址
  • #用途:

    將變數的位址賦值給指標
    • 傳遞變數的位址(作為函數的參數)
區別

#指標指向變數的位址,而位址運算子取得變數的位址。
  • 指標可以解引用以存取和修改變數的值,而位址運算子本身不能存取變數的值。
實戰案例

以下程式碼範例示範了指標和位址運算子在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 修改 x 的值。

以上是掌握C語言中*和&的應用場景與區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn