二、基本類型:
-
short(2個字節16位)、int(4個字節)、long(4個字節)
-->非科學計算,建議用整型 float(4個字節,低精度)、double(4個字節,高精度)
char(1個字符,1個字節,a/b/c)
void(無符號型,使用指針的時候才用,指針可以理解爲一個地址)
可以用printf打印:%d整型、%f表示浮點型、%c表示字符型,%p表示地址
三、變量與常量:
int a =1;//變量,可以再複製
const int b = 2;//常量,值不能改變了
-
內存管理:
棧區內的內存是系統自動分配的,一般爲4~8M,不會太大,執行一個方法的時候,系統會自動爲他分配內存,然後將它的局部變量等一個一個的壓入棧,方法結束後,再逐一彈出棧,這也就解釋了局部變量是有範圍的;
堆區中的內存需要調用malloc去申請,用完了之後要手動釋放掉,不然會造成內存泄露;如果用了別人的指針,還會造成野指針‘’
分配內存:void* mem = malloc(size);
釋放內存:free(mem);
四、指針(門牌號)與數組
指針就是內存地址 : void*(不關注類型)、char*
1.指針本身可以運算
2.指針所指的內容可以運算
3.函數指針:可以指向不同的函數,得到不同的結果
int add(int a,in b);//聲明一個函數
int (*f)(int ,int);//聲明一個函數指針,**參數和返回結果都要和原函數一樣**
f = add;//將原函數的地址賦給指針f
使用:
f(3,5);
- 數組:從某個地址開始,連續的類型相同的空間
五、結構體:
struct st{
int a;//只能定義成員變量,以分號結尾
int b;//不能定義方法
};//注意這裏有一個分號
使用:
Struct st obj;
obj.a = 10;
enum em{
red_color = 0,//以,分隔
blue_color, //後面的值遞增
yellow_color //最後一個可以不要,
};
使用:
enum em et = blue_color;//值只能是枚舉中的值
六、循環
//1表示永遠爲真
while(1){
....
}
七、文件操作
- 文件類型:
FILE* file
- 打開文件:
FILE* fopen(pahh,mode)
- 關閉文件:
fclose(FILE*)
FILE* file;//定義一個文件
file = fopen("1.txt","a+");//打開一個文件,a+表示沒有文件就創建,有就在之前的文件後追加
fwirite("hello!",1,6,file);//寫入文件
rewind(file);//把遊標移到文件的開頭
char buf[1024] = {0, };
fread(file,1,6,buf);//讀取文件
fclose(file);//關閉文件