上午講了3個重點
指針常量
指向常量的指針
可以修改指針指向,不能修改指向地址的內容。
常量指針
固定指向的指針,可以修改指向地址的內容,但是不能修改其指向性。
指向常量的常量指針
指針本身就是一個常量,即不能修改其指向的地址,但是因爲其指向的地址是個常量,所以連其指向地址的內容也沒法修改。
下午的內容
下午主要是講了2個函數的用法
malloc函數
動態內存空間申請
realloc
重新分配內存空間
成功會返回一個int *類型的空指針
失敗返回NULL
malloc函數一般使用方法是
int *p = malloc(sizeof(int));//給p申請一塊內存大小爲4個字節的內存空間
realloc函數
p = (int *)realloc(p, num*sizeof(int));
//給p重新定義一個首地址和大小
此時的p是一個類似數組的內存空間
上面的p = (int *)realloc(p, num*sizeof(int));
等價於
int a[1];
int *p=&a;
但是用realloc可以給這段類似數組的內存空間修改大小
還有一點很重要就是在銷燬指針p之前要把分配給p的內存空間釋放
free(p);
否則這段內存就會泄露
這就是內存泄露的主要原因
一個好的程序員是不會讓自己的程序泄露的