首頁 >後端開發 >C++ >c語言中*與&的區別

c語言中*與&的區別

下次还敢
下次还敢原創
2024-04-27 22:51:15683瀏覽

在C語言中,(星號)用於間接尋址和取值,而&(位址符號)用於取位址和引用。取得變數或指標指向的值,用於修改值和宣告指標變數;&取得變數位址,用於指派位址給指標變數和傳遞位址作為函數參數。

c語言中*與&的區別

C語言中*與&的區別

符號*和&在C語言中是不同的運算符,用於不同的目的:

含義:

  • 星號*:表示間接尋址或指標取值運算符。
  • 位址符號&:表示取位址或引用運算子。

用途:

星號*:

  • 取得變數或指標指向的變數的值。
  • 修改變數或指標指向的變數的值。
  • 作為指標變數的宣告的一部分。

位址符號&:

  • 取得變數的位址(記憶體位置)。
  • 將變數的位址指派給指標變數。
  • 傳遞變數的位址作為函數參數。

範例:

int main() {
    int x = 10;
    int *ptr = &x;  // ptr指向x的地址

    // 获取x的值
    printf("x = %d\n", x);

    // 使用指针获取x的值
    printf("*ptr = %d\n", *ptr);

    // 使用指针修改x的值
    *ptr = 20;
    printf("x = %d\n", x);  // x的值已经改变为20

    return 0;
}

注意:

  • *ptr表示指標變數ptr指向的變數的值,而&x表示變數x的位址。
  • 通常情況下,指標變數是一個類型為「變數類型*」的變量,指向特定類型的變數。
  • 取位址和間接尋址運算子可以組合使用來實現指標算術和其他高階資料結構。

以上是c語言中*與&的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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