指標與陣列,結構體 ,二級指標的應用

2021-08-21 18:34:33 字數 1894 閱讀 2343

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指向指標...