1.指標與資料關係「
1.指標與變數
2.指標與陣列(一維 二維)
3.指標與結構體變數
4.二級指標和多級指標
一級指標變數:專門用於存放普通變數的位址。
eg: int b=200; int* a=&a;
二級指標變數:專門用於存一級指標變數的位址
二級定義變數:型別**變數名
5.指標與函式的關係
c語言:面向過程(模組(函式):功能)
函式分類:自定義函式,系統函式。
5.1呼叫函式: 函式名(實參列表)
注:呼叫函式一定要與函式名匹配
5.2:自定義函式:f(x,y)=3x+y
函式型別 函式名(形參列表)
1.無返回值 無形參
void 函式名(void)
2.有形參 無返回值
void 函式名 (形參列表)
1.一級指標作形參:當在被呼叫函式內需要修改呼叫函式內的資料時傳遞位址
2.傳遞陣列:
返回值 函式名(char buf 或者 char* buf)
3.結構体作形參:(實參傳遞引數:值傳遞)
缺點:不能修改呼叫函式內的結構體內容
結構體指標作形參:修改指向內容
變數的作用域,生命週期;
1.變數的作用域:能被引用的區間
全域性:在函式外定義的變數
作用域:從定義開始,到本檔案的程式結束
區域性:在函式內定義的變數
作用域:在函式內
2.變數的生命週期:
動態區:auto(只能在函式內定義)
當函式被呼叫時,空間被申請,當函式運算結束時,空間被釋放。
靜態區:static變數或者全域性變數
堆區:alloc/malloc等申請 free釋放
指標與結構體,通過指標修改結構體中的內容
#includestruct people
;void fun1(struct people ll)
void fun(struct people* p)
void main()
; fun(&ym);
}
陣列做形參,就是指標變數 ,在自定義函式中就直接定義成指標變數
#includevoid swap(int*a,int*b)
void fun(/*char* pb*/char pb)
void main()
定義二級指標,通過二級指標修改結構體屬性
#include#includestruct people
;void main()
; 引用變數的屬性
printf("%s\n",ym.name);
一級指標變數 型別* 變數名
struct people*p=&ym;
printf("%s\n",p->name);
二級指標變數
struct people **pp=&p
printf("%s\n",(*pp)->name);
通過pp修改自己的名字
strcpy(**pp.name,"ym");
}
字串的比較,字串轉為整型
#include#includeint change(char* p)
return result;
}比較兩個=字元的大小
short strcmp_lf(char *str1,char *str2)
return result;
}void main()
else if(result==0)
printf("s==s2\n");
else
printf("s
C 陣列指標 指標陣列與二級指標
二級指標 測試 陣列指標是指標,意為指向陣列的指標 指標陣列是陣列,意為陣列內部儲存著指標的陣列。陣列指標具有如下特性1 陣列指標用於指向乙個陣列 陣列名是陣列首元素的起始位址,但不是陣列的起始位址,通過取位址符 作用域陣列名可以得到陣列的起始位址 可以通過陣列型別定義陣列指標如 arraytype...
二級指標與陣列
char str 這是字元指標陣列,每乙個陣列元素是乙個指標變數,而每個指標變數指向字串首字元位址,即是字串的位址。因為每乙個字串都代表的是乙個位址,是字串首字元的位址。字串常量是放在文字常量區,是不可以更改的。而指標陣列str裡面存放的是指向字串位址,它是可變的。如str 0 是可變的,它是指標變...
二級指標與指標陣列的關係
1 指標陣列argv中每個元素都是指標,即每個元素都是字串的首位址.因此測試1組輸出結果為 argv 0 0x4270ac,argv 0 abcdefg argv 0 0x426034,argv 0 1234567 argv 0 0x42601c,argv 0 q1w2e3r 2 二級指標p指向指標...