儲存位址的,位址是乙個數字。
左值代表空間!右值代表空間裡面的內容!
1、定義乙個指標變數p,型別是int*。
2、p指向乙個int型資料
int *p;
指標的繫結
p = &a;
指標的解引用
*p = 23;
int *p1 = &a; //定義指標的同時並且初始
2、const 關鍵字
const 修飾的變數是常數,不可更改,只能初始化一次
const int a = 23;
a = 1;
//error: assignment of read-only variable 『a』
const int b;
b = 23;
//error: assignment of read-only variable 『b』
3、強制型別轉換
int * p = (int *)&a;
const 修飾唯讀變數
const int a = 10;
int arr[a] = {};
//error: variable-sized object may not be initialized
//原因1、const 修飾唯讀變數.
2、在c++裡面對const進行了擴充套件,表示常量
//巨集定義和const?在修飾函式引數時,表示輸入型引數。
const與指標,就近原則
int const *p1; //error:assignment of read-only location 『*p1』
const int *p2; //p2,p2所指向的資料(int) 等同於p1
int * const p3; //野指標,修飾p3,p3不可改變,所指向的內容可改變
const int * const p4; //必須定義時,同時初始化
int *p;
野指標危害:
1、直接指向核心區
2、指向可用也沒有別的資料的區域
3、最嚴重,可用但有別的資料
null專用於指標的初始化(寫0)
void fun1(int a)
函式的輸出型引數
void func2(int
*p)int main(void)
#include
void swap(int
**x, int
**y)
int main(void)
int *arr <=> int arr <=> int arr[數字]
陣列名作為函式引數退化為乙個指標
子函式內部改變了原陣列裡面的內容
堆記憶體也是記憶體的一種,需要程式設計師自己手動申請malloc,手動釋放
編譯器不會自動**,申請的記憶體伴隨整個程式
流程:申請,判斷成功,初始化,使用,釋放,指標設定為空
注意:malloc申請的空間,預設是有最小分配的
#include
#include
#include
int * shenqing_memory(int num)
void arr_show(int *p, int lenth)
void set_value(int *p, int lenth)
void func_arr(int *p, int lenth)}}
for(i=0;iprintf(" %d",p[i]);
}printf("\n");
}int main(void)
*/
p = shenqing_memory(num);
// memset(p, 0, num * sizeof(int));
set_value(p,num);
arr_show(p,num);
func_arr(p,num);
if(null != p)
}
二維陣列的變數名是首元素首位址
&arr[0]代表第一維陣列的首元素首位址
&arr[0][0]代表陣列的第二維陣列是首元素首位址
#include
int main (void)
; int (*p)[3];
int i = 0, j = 0;
p = arr;
for(i=0; i<2; i++)
}
19 C語言 結構體
c 陣列允許定義可儲存相同型別資料項的變數,結構是 c 程式設計中另一種使用者自定義的可用的資料型別,它允許您儲存不同型別的資料項。結構用於表示一條記錄,假設您想要跟蹤圖書館中書本的動態,您可能需要跟蹤每本書的下列屬性 為了定義結構,您必須使用 struct 語句。struct 語句定義了乙個包含多...
C語言中野指標總結
野指標是什麼?野指標是如何產生的?有什麼危害?如何避免野指標?是什麼 野指標是什麼?野指標,就是指標指向的位置是不可知的 隨機的 不正確的 沒有明確限制的 很可能觸發執行時段錯誤 sgmentation fault 例如 int p 區域性變數,分配在棧上,棧反覆被使用,所以 值是隨機的 print...
C 語言中的指標
指標是 c 語言中的精華,正確靈活的運用指標,可以表示複雜的資料結構,動態分配記憶體,方便使用字串和陣列,呼叫函式返回多結果,直接處理記憶體單元等等。位址就是記憶體的編號,如果拿旅店作為記憶體,那麼每個房間號其實就相當於位址了。當程式編譯時,就會對變數分配記憶體單元,分配時按變數型別分配大小。經過編...