別誤用指標

2021-09-01 09:32:51 字數 350 閱讀 5500

(1)c/c++中,很容易因誤用指標而犯錯誤,請考慮以下**,它的目的是在鍊錶的前面插入乙個元素:

bool insertinfront(intelement *head, int data)
前面的**是不正確的,因為它只更新了頭指標的「本地拷貝」.正確的版本是傳入乙個頭元素指標的指標:

bool insertinfront(intelement **head, int data)
(2)char *const chrptr,它不能改為指向記憶體中的另一位置,但可以用來修改它所指向的記憶體中的內容;

const char *chrptr,它可以用來指向不同的記憶體位址,但不能用來修改所指向位置的內容。

C安全問題與指標誤用

考慮如下的宣告 int ptr1,ptr2 ptr1為指標,ptr2為整數 正確的寫法如下 int ptr1,ptr2 用型別定義代替巨集定義是乙個好的習慣,型別定義允許編譯器檢查作用域規則,而巨集定義不一定會。使用巨集定義輔助宣告變數,如下所示 define pint int pint ptr1,...

陣列的誤用

我上次寫了篇文章列舉了我所看到的一些不好的c 教學,並且承諾詳細地解釋這些技術。這篇就是其中的第一篇。我見到有歸因於trenchard more 定義了more array theory 的斷言,說陣列是所有資料結構中最基本的乙個。事實上幾乎沒有哪個在世的程式設計師沒有使用過陣列。如果沒有足夠的證據...

快取設計 快取誤用

服務1和服務2約定好key和value,通過快取傳遞資料 服務1將資料寫入快取,服務2從快取讀取資料,達到兩個服務通訊的目的。存在問題 資料管道,資料通知場景,mq更加合適 思想是讓專業的軟體幹專業的事情,nginx做反向 db做固話,cache做快取,mq做通道 多個服務關聯同乙個快取例項,會導致...