1、對於問題理解的深度,決定能不能成為乙個高手
2、概念不清晰,是產生bug的根源
本質:固定大小記憶體塊的別名
a[10]
a &a
陣列資料型別(關鍵點):
1、陣列型別
2、陣列指標
3、陣列型別與陣列指標型別的關係
求資料型別佔的位元組數
sizeof()
資料型別可以起別名嗎?
tpedef 重定義資料型別別名
例:
#define _crt_secure_no_warnings#include #include #include typedef int haha;
typedef struct student stu;
void main(void)
-->void 無型別 void * 無型別指標
void * 可以指向任何型別的資料
用法1、資料型別封裝:
void * memcpy(void * dest,const void * src, size _tlen);
用法2、函式返回值和無形參
void main(void);
用法3、void 指標
c語言規定 相同資料型別的指標才可以相互賦值
malloc(4) 返回型別為void *
char * p=null;
p=(char*)malloc(4);
void * 轉為其他型別需要型別強制轉換
任何型別賦值給void * 不需要型別強制轉換
不存在void 型別的變數 編譯器不知道如何分配記憶體
資料型別的本質
先說結論 我們可以通過反彙編檢視程式對應的組合語言,了解其具體實現。讓我們先通過下面的例子了解下組合語言 void func mov dword ptr ebp 4 10h mov 是指令,意思是把資料從 源位址 移動到 目的位址 10h 就是 源位址 只不過這裡用了乙個常數而不是位址 dword ...
01 02 資料型別本質
include include include 給型別起別名 類似於科比的全名叫 科比,布萊恩特,使用typedef 可以叫他科比 typedef unsigned int u32 typedef和結構體結合使用 struct mystruct typedef struct mystruct2 tm...
1 20 資料型別本質
include include include 資料型別 基本型別 int float double char void 使用者定義型別 列舉型別 enum 結構型別 陣列 結構struct 聯合union 類class 指標型別 資料型別的本質 資料型別可以理解為變數的模具,固定記憶體大小的別名 ...