記憶體和位址
計算機的記憶體由數以億計的位(bit)組成,每個位可以容納0或1。由於乙個位能表示的值範圍太有限,所以單獨的用處不大,通常許多位合成一組作為乙個單位,這樣就可以儲存範圍比較大的值。
指標變數:專門存放變數的位址的變數
定義指標變數
資料型別
*
變數名
int
*a;
指標變數必須初始化再使用
int*a;
....
*a = 12;
這個宣告建立了乙個名叫 a 的指標變數,後面那條賦值語句把12儲存在a所指向的記憶體位置。但究竟a指向**呢?
我們只是宣告了這個變數,但未對它進行初始化。所有我們無法**12這個值將儲存於什麼地方。從這一點來看,指標變數和其他變數並無區別。如果變數是靜態,它會被初始化為0,但如果變數是自動的,它就根本不會被初始化。
指標變數須指向已定義的同型別變數
直接訪問與間接訪問
直接訪問:通過變數訪問變數值
間接訪問:通過存放變數位址的指標變數去訪問
指標和指向陣列的指標
陣列名是表示陣列
首位址的
位址常量
指標運算
.指標的算術運算
(1)指標 +/-整數
標準定義這種形式只能用於指向陣列中的某個元素的指標。
結果仍然是指標。
int a[10] = ;
int *p1 = a;
int *p2 = p1+3;
(2) 指標- 指標
只有當這兩個指標指向同乙個陣列中的元素時,才允許從乙個指標減去另乙個指標。
int set[6] = ;
int *p1=set, *p2 = set+5;
int t= p2 - p1;
t的值是5-0=5;
.指標的關係運算
對指標執行關係運算是有限制,只有以下的幾個
<=,>,>=
前提:它們都指向同乙個陣列的元素
C 基礎總結 4 指標
指標是乙個變數,其儲存的值是位址,而不是值本身。有點類似於組成原理裡面的變址定址 在討論指標之前,我們先來看看如何尋找常規變數的位址。只需對變數引用取位址符 就行了。如下面一段 duck變數為int型變數,其分配的位址是1000,裡面儲存的值是12,而birding是乙個int型指標變數它本身的位址...
C 學習筆記4 指標
1.什麼是指標?指標是乙個變數,其值為另乙個變數的位址,即,記憶體位置的直接位址。在使用指標儲存其他變數位址之前,對其進行宣告。指標變數宣告的一般形式為 type var name type 是指標的基型別,它必須是乙個有效的 c 資料型別,var name 是指標變數的名稱。星號是用來指定乙個變數...
4 指標運算 指標函式詳解
1.指標 資料型別 儲存位址的資料型別 2.指標變數 儲存位址的變數 4.指標的定義 型別名 變數名 型別名 變數名 表示指標變數 指標的計算 型別名 定義 先 後變數名,後型別名。int 3 1 p 2 5.指標所佔位元組 資料型別 在32位系統中,佔4個位元組 6.指標變數型別 去掉變數名 in...