了解C語言之指標與陣列

2021-08-05 19:33:17 字數 1717 閱讀 9602

一、陣列的儲存與訪問

小結:

a[i]的內容是: a[i] <=> *(a+i)

二、指向一維陣列的指標需要定義乙個基型別與陣列元素資料型別相同的指標變數。

#include

#define n 10

void main( )

,*p, i;

p=a;

a、*(a+i) b、p+i c、a[p-a] d、*(&a[i])

2、設變數定義為「int a[4]=,*p=a+2;

則*p的值為__7___。

三、二維陣列的儲存與訪問

二維陣列的訪問:

在c語言中,將二維陣列看成是由若干個一維陣列構成的一維陣列。如:int a[3][4],定義了乙個二維陣列,邏輯上把它看成3行4列的矩陣:

0列 1列 2列 3列

0行 a[0][0] a[0][1] a[0][2] a[0][3]

1行 a[1][0] a[1][1] a[1][2] a[1][3]

2行 a[2][0] a[2][1] a[2][2] a[2][3]

元素a[i][j] 的值:a[i][j] <=> *(a[i]+j) <=> *(*(a+i) +j)

a+1的結果為:3008

a[0]+1的結果為:3002

&a[0][0]+1 的結果為:3002

p+1的結果為:3002

例: 

輸入輸出二維陣列中的所有元素。位址法

#define m 4

#define n 5

void main( )

{ int a[m][n],i,j;

for(i=0;ifor(j=0;jscanf("%d",a[i]+j);

for(i=0;ifor(j=0;jprintf("%d",*(a[i]+j));

printf("");

方法二:指標變數法#define m 4

#define n 5

void main( )

{ int a[m][n],i,*p;

for(p=&a[0][0];p

scanf("%d",p);

for(p=&a[0][0];p

printf("%d",*p);

1、下列_d_形式不表示二維陣列a的第1行第2列的元素位址

a、a[1]+2 b、*(a+1)+2

c、&a[1][2] d、*(a[1]+2)

2、陣列定義為int a[4][5],引用*(a+1)+2表示 b

a、a[1][0]+2 b、a陣列第1行第2列元素位址

c、a[0][1]+2 d、a陣列第1行第2列元素的值

c語言之指標與陣列

考慮該例子 int calendar 12 31 該語句宣告了calendar是乙個陣列,該陣列擁有12個陣列元素,其中每個元素都是乙個擁有31個整型元素的陣列 而不是反過來理解 因此,sizeof calendar 的值是12 31 372與sizeof int 的乘積。如果calendar不是用...

C語言之指標與陣列

前言 訪問陣列元素既可以使用陣列名加下標的方法,也可以使用指標的方法。但使用指標的方法可以使 更緊湊 更靈活 更高效。一 幾個概念而陣列名代表陣列的起始位址,即陣列的指標。說明 二 指標訪問一維陣列 1 利用指標名構造指標表示式 例如 定義整型陣列a,int a 6 2 利用指標變數訪問陣列 三 指...

C語言之辨別指標陣列與陣列指標

我們先來說一下指標陣列,顧名思義,這是乙個存放指標型別的陣列 從定義上來看 int p 3 沒有括號括起來它還是陣列這裡我還是寫乙個程式來理解一下 include intmain for int i 0 i 3 i return0 程式執行的結果 1 23指向指標的陣列 又稱行指標 如何定義 int...