指標的基本知識與常見錯誤

2021-08-19 23:26:34 字數 1067 閱讀 2350

float* pointer_1;

int* pointer_2;

基型別* 變數名

int a;

int*p=&a;

int* p,a=123;

p=&a;

//或int* p;

int a=123;

p=&a;

int* p,a=123;

*p=a;

**結果:

error c4700 uninitialized local variable 『p』 used c語言**

錯因:

由於指標變數p沒有初始化,很可能是指向了系統中某一具有功能的記憶體位址,此時再對其賦值很有可能會造成致命錯誤

int

*p=null;

int a;

p=&a;

printf("%d\n",*p);

**結果:

沒有任何輸出**

錯因:

由於把指標變數初始化為符號常量null,也就是0。記憶體位址初始化為0,實際上執行時編譯器並沒有給指標p分配記憶體空間,所以p是無法對任何資料記憶體位址進行訪問。故沒有任何返回值。

在函式定義中的錯誤

//定義乙個交換兩個變數的函式

void swap(int

*p1,int

*p2)

**結果:

函式並沒有發揮作用,沒有交換兩個數**

錯因:

因為swap函式中只是對形參指標的值進行操作,由於形參的值無法傳回實參,所以無意義。正確的寫法應該是:

void swap(int

*p1, int

*p2)

其實是在指標做完某件事後,暫時把null複製給它,可以防止出現「野指標」

指標基本知識總結

指標賦值 int a,b,c a b a c 注意只有這兩種方式 函式指標 void add int a,int b add a,b int p scanf d p 是非法語句 指標與一維陣列 1 int a 10 scanf a i printf a i 2 int a 10 p,p a,scan...

cmd與npm的基本知識

cd 根目錄 cd 上一級目錄 cd 當前命令 cd 檔名 切換到某個檔案 檔案首字母加tab鍵 快速的輸入某個資料夾名稱 箭頭上下,檢視歷史記錄命令 建立空資料夾 md 資料夾名 刪除空資料夾 rd 資料夾名 刪除檔案 del 檔名 刪除資料夾內所有檔案 del 資料夾 刪除資料夾和裡面所有內容 ...

求職基本知識與技巧

寫簡歷之前,你得先站在用人單位的角度想一想 每個月支付工資招聘員工,目的是什麼?搞清楚這個問題以後,寫簡歷才能做到有的放矢。乙份合格的個人簡歷,應該用詞準確 內容完整 條理清晰 簡明扼要,不能拖泥帶水,也不能過於簡單。首先,在個人簡歷上應該消滅錯別字。要是用人單位發現你的簡歷上有錯別字,你就會立刻被...