C語言學習(三) 指標

2021-09-28 19:32:48 字數 913 閱讀 6443

指標的定義

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放在等號的右邊取值 從記憶體獲取值 指標變數和它所指向...