使用指標應注意的問題
1.錯誤的對乙個未初始化的指標進行解引用,
2.錯誤的對乙個null
指標進行解引用。解引用乙個
null
指標的結果因編譯器而異,允許程式在這樣的訪問之後還可以繼續進行的原因可能是這個程式可能沒有正確的執行。
3.向函式錯誤的傳遞空指標
4.指標減去乙個整數,結果產生的指標所指向位置在陣列第乙個元素之前,則非法,指標加乙個整數,結果產生的指標所指向位置在陣列最後乙個元素之後,則合法(但往後就不合法了,且不可以對其間接訪問。) 例1
: int array[size];
int *pi;
for(pi=&array[0];pi<&array[size];) //
合法 for(pi=&array[size-1];pi>=&array[0];) //
非法 指標在越過陣列右界後仍然進行解引用,它將把其他記憶體位址清零。
若pi緊跟陣列後分配記憶體,當指標移到陣列後那個位置,最後被清零的記憶體位置就是儲存指標的位置,這個指標變為0,
pi<&array[size]
永遠成立,函式繼續執行。指標在他被解引用之前增值,指標在記憶體中破壞遇見的所有值,當再次到達陣列位置時,繼續重複,進入無限迴圈。
結構體巢狀指標應注意的問題
在c語言中記憶體的開闢和 是乙個很重要的問題,但是如果在程式設計中使用到結構體型別就顯得更為重要了,但是如果結構體中有巢狀了指標就變得更加更加的重要了,看起來這是乙個很小的點,但是這也是乙個很容易被忽略的點,下面就以案例說話 struct student stu 第一沒有開闢空間 int main ...
應注意的問題
1.區域性變數的名稱要有意義,盡量用對應的英文命名,比如 使用者姓名 變數,不要用aa bb cc等來命名,而要使用username。2.不要使用單個字母的變數,如i n x等。而要使用index temp等。用於迴圈迭代的變數例外。3.應該使用pascal命名法命名方法名 屬性名 類名和命名空間,...
Promise使用時應注意的問題
最近在使用axios庫時遇到了個問題,後端介面報了500錯誤,但前端並未捕獲到。1.呼叫介面的業務 如下 1 業務 呼叫 2axios then res catch err 很奇怪,未按預期的結果執行。2.檢查下axios整體的配置 自己封裝的用來過濾http錯誤的方法 function filte...