1024天軍訓第2天

1024天軍訓第2天

學習筆記

  • 指針操作符
    指針操作符

  • 指針與常量
    指向常量的指針:指針定義爲指向常量,即不能通過指針修改指針指向的值,只是不能通過解引指向常量的指針並改變指針所引用的值,但可以改變指針,因爲指針的值不是常量。
    const int *pci; // 指向整形常量
    數據類型與const關鍵字的順序不重要。const int *pci;等價於int const *pci;

    // 注意,常量可以通過非常量指針進行修改
     const int number = 200;
     int *pi = &number;
     *pi = 100;
     printf("%d %d\n", *pi, number);
     // 輸出 - 100 100
    

    指向非常量的常量指針:

  • Redis 簡單動態字符串 SDS

struct sdshdr{
	int len;// 已使用的長度
	int free;// 未使用的長度
	char buff[];// 存儲字符串的字符數組,lenth(buff) = len + free + 1('\0')
};

優點:
額外分配一位存儲’\0’,用以與C字符串保持一致,兼容部分C字符串函數
常數複雜度獲取字符串長度
杜絕緩衝區溢出(C 緩衝區溢出,內存泄露)
通過空間預分配,惰性空間釋放減少修改字符串時帶來的內存重分配次數
二進制安全
C字符串與SDS之間的區別

心得體會

SDS
C 語言指針操作符

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章