陣列,指標與函式

2021-10-01 07:41:14 字數 1882 閱讀 6114

1.陣列元素可以用作函式實參,用法與變數相同,向形參傳遞陣列元素的值。(單向傳遞)

2.陣列名可以用作函式的實參和形參,傳遞的是陣列第乙個元素的位址。(可利用這一特點改變實參陣列的值)

3.形引數組可不指定其大小,因為形引數組首元素和實參陣列首元素具有同一位址,定義時在陣列名後跟乙個空的方括號。

4.多維陣列名作函式引數時,對形參的定義可以省略第一維的大小。(int array [ ][8])

1.指標變數既可以指向變數,也可以指向陣列元素(把某一元素的位址放到乙個指標變數中)。所謂陣列元素的指標就是陣列元素的位址。

2.引用陣列元素可用下表法和指標法。(使用指標法使目標程式質量高,占用記憶體少,執行速度快)

例:int a[10]; int p; p=&a[0]或p=a;

或者直接寫成int p=a;

3.當指標指向乙個陣列元素時,p+1指向同一陣列中下乙個元素,p-1指向同一陣列中的上乙個元素,即加或減乙個陣列元素所占用的位元組數。(int,long,float—d=4;char—d=1)

例:p的初值為&a[0],則 * ( p+1)= (a+i)=a[5]([ ]實際上是變址運算子,a[ i]即計算a+i)

4.如果指標變數p1和p2都指向同一陣列中的元素,如執行p2-p1,結果是兩個位址之差除以陣列元素長度*,即求出了元素間的相對距離。(注意兩個位址不能相加)

5.指標引用陣列的三種方法:

輸入:for(i=0;i<10;i++)

a.scanf("%d",&a[i]);

b.scanf("%d"a+i);

c.scanf("%d",p);

列印:a.for(i=0;i<10;i++)

printf("%d",a[i]);

b.for(i=0;i<10;i++)

printf("%d",*(a+i);

c.用指標指向當前陣列元素

nt *p

for(p=a;p<(a+10);p++)

printf("%d",*p);

//p++高效簡潔,不能a++,變數才可以++

6.用陣列名做函式引數,將形參陣列名作為指標變數來處理。

例://實參用陣列名a,形參可用陣列名或指標變數名

a.形參和實參都用陣列名

int main()

int f(int x[ ])//共用一段記憶體

b.實參陣列名,形參指標變數

int main()

int f(int *x)//可改變x的值指向a任一元素

c.實參形參都用指標變數

int main()

int f(int *x)//p為一變數易更改

7.通過指標引用多元陣列

a.多維陣列元素的位址(以int a[3][4]為例)

表現形式含義值

a二維陣列名,指向一維陣列a[0],即0行起始位址

2000

a[0],*(a)

0行0列元素位址

2000

a+1,&a[1]

1行起始位址

2016

a[1],*(a+1)

1行0列元素a[1][0]位址

2016

a[1]+2,*(a+1)+2,&a[1][2]

1行2列元素a[1][2]位址

2024

* a[1]+2,* (*(a+1)+2),a[1][2]

1行列元素a[1][2]值

13b.指向多維陣列元素的指標變數

int *p指向陣列元素

int (*p)[m列]指向m個元素構成的一維陣列

1.字串引用方式

a.用字元陣列存放乙個字串(%s輸出字串,%c輸出字元元素)

b.用字元指標變數指向乙個字串常量

例:char *a=「i love you!」;

c指標陣列與陣列指標與指標函式與函式指標筆記

include include typedef struct t ooxx t ooxx,pt ooxx 測試陣列指標 void test ooxx arrayp t ooxx p int num 測試指標陣列 void test ooxx parray t ooxx p,int num 測試函式指...

函式指標與函式指標陣列

去看這篇文章,寫的非常好 void func 這是乙個函式指標宣告,定義的時候,要把真實的函式位址賦給 func func function 你已經寫好了function 函式,再把function這個函式位址賦給func,有啥用?沒啥 用吧。來看看函式指標陣列你就只知道了 void func 25...

指標與陣列與函式指標

變數的本質是一段儲存空間的別名,指標的本質是一種特殊型別的變數,這種變數的儲存空間中儲存的是另乙個變數的位址。號的意義 號代表所申明的變數是指標 號表示取指標所指向記憶體空間的值。該使用傳值呼叫還是傳址呼叫 當函式內部需要改變實參的值,則需要使用傳址呼叫 如果函式需要傳入的引數型別複雜,體積巨大,又...