首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C 指針基礎題解析:*p = &a 與 p = &a 的含義區別

     編輯:程式設計疑難解答

題目

選項:*p = &a 是什么意思?特別是 *p。p 不應該是 a 的地址,而 *p 不就等于 a 嗎?

解析

  • p = &a:將變量 a 的地址賦值給指針 p。此時 p 指向 a。
  • *p = &a:語法錯誤/邏輯錯誤。*p 表示 p 指向的內存單元的值(即 a 本身),類型為 int;而 &a 類型為 int*。不能將指針賦值給整型變量。
  • *p = a:將 a 的值賦給 p 指向的內存(即給 a 賦值),等价于 a = a(無意義)。

正確選項

B: p = &a; —— 這是指針初始化的標準寫法。

記憶口訣

  • & 取地址(Address),結果是指針。
  • * 解引用(Dereference),結果是值。
  • 聲明時 int *p 中的 * 標識 p 是指針;使用時 *p 表示「p 指向的那個值」。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved