指標的定義
int *p char *p float *p
指標變數所佔記憶體的大小
跟前面定義的型別無關 而跟系統有關
16bits作業系統:2b
32bits作業系統:4b
64bits作業系統:8b
指標指向乙個值所在的第乙個位元組(通常乙個位址存放乙個位元組)
const修飾指標
指標指向乙個字串時:如 char * p = 「aaaaaa\n」 等價於 const char * p = 「aaaaaa\n」
p是指向該字串的首位址,這種字串在初始化時是為const型別 要跟char陣列初始化時區別開來
volatile和typedef
volatile :防止優化 確保本條指令不會因編譯器的優化而省略,且要求每次直接讀值
volatile int a[2]; a[0]=1; a[0]=2; a[0]=3; 編譯器會優化為只生成 a[0]=3 這條語句的機器**
typedef:重定義符
char * type; ----type為char型別的指標變數 指向一段char型別的記憶體
typedef char * type; ----type為char型別指標的別名
指標的加減操作
指標的加減等同於:type p p+n(巨集觀)= p+nsizeof(type)(微觀)
c語言在定義同個型別的多個變數時 其位址是連續的
指標的邏輯運算(大部分用到 == 和 !=)
0x0是乙個無效位址,即null 用null判斷乙個指標是夠無效
多級指標
如:char **p ----指標中存放指標的位址
標準main函式寫法
int main(int argc,char **ar**) —argc引數的個數 ar**存放引數
C語言學習4 指標
int a 10 int p a 一級指標 int s p 二級指標 int p 10 指向陣列的指標 int s 10 指標指向放指標的陣列 這個陣列有十個空間 int p 10 開闢10個空間 每個空間放指標 例如 int br 10 int s 10 br int ar 10 int p 10...
C語言學習6指標
1.指標與指標變數 2.直接訪問和間接訪問 3.指標的定義格式 方法一 int a int p a 方法二 int p,a p a 1.概念2.一般形式定義 int b 3 指標陣列,表示有三個元素,每個元素都是int int p 3 陣列指標,也可為行指標,它指向包含3個元素的一維陣列 1.定義乙...
C語言學習筆記02 指標
指標也是一種變數,占有記憶體空間,用來儲存記憶體位址。在指標宣告時,號代表所宣告的變數為指標。在指標使用時,號表示操作指標所指向的記憶體空間的值。p相當於通過位址 p變數的值 找到一塊記憶體,然後操作記憶體。p放在等號的左邊賦值 給記憶體賦值 p放在等號的右邊取值 從記憶體獲取值 指標變數和它所指向...