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

C++ 指標變數重複宣告錯誤:int point 與 int *point 衝突

     編輯:程式設計疑難解答

錯誤程式碼

int point = 0;
int *point = &point; // 編譯錯誤:point 重複定義,且型別衝突

錯誤訊息

error C2040: 'point' : 'int *' differs in levels of indirection from 'int'

原因

同一作用域內**不能**用相同名稱宣告兩個不同型別的變數。`point` 已是 `int`,無法再宣告 `int *point`。

修正:換個名字

int value = 0;
int *ptr = &value; // 正確

若想「用同一名稱」表達指向自己的指標 (罕見需求)

int point = 0;
int *ptr = &point;
// 或用聯合體 (不推薦)
union { int val; int *ptr; } u;
u.val = 0;
u.ptr = &u.val; // 同一記憶體,型別雙重解讀

總結

C++ 同一作用域變數名稱唯一。指標變數請用語義化名稱 (如 `ptr`、`pValue`、`address`),避免與被指向變數同名。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved