C語言 陣列與指標

2021-10-08 15:25:53 字數 1718 閱讀 5507

通過陣列下標完成的操作都可以通過指標來實現

1.定義:

int a[10];

a[i] //表示陣列a的第i個元素

int *p;

p = &a[0]; //p指向陣列a的第0個元素

x = *p; //p的值是陣列元素a[0]的位址,將陣列元素a[0]中的內容複製到變數x中

int *p = a; //陣列名就是乙個位址,指向陣列第乙個元素的位址

a[i]等價於*(a + i)

2.舉例:

#include int main()

; int *p, *q, *m, *n;

p = &a[0]; //將陣列a的第乙個元素位址賦給指標p

q = a; //陣列名是陣列第乙個元素的位址

printf("%d %d\n", p, q);

printf("%d %d\n", *p, *q);

m = &a[1];

n = a + 1;

printf("%d %d\n", m, n);

printf("%d %d\n", *m, *n);

if((p+1) == &a[1])

printf("是");

else

printf("否");

return 0;

}

結果:

字串常量是乙個字元陣列

1.定義:

"hello world";

char c = ;

2.舉例:

#include int main()

; char *p, *q;

printf("%c\n", c[0]);

printf("%c\n", "hello world\0"[0]);

p = &c[6];

q = p + 1;

printf("%d %d\n", p, q);

printf("%c %c\n", *p, *q);

return 0;

}

結果:

1.舉例:已知一位高中學生7門課程的成績,求出總分和平均分並用指標遍歷陣列,求最大值和最小值。

實現:

#include int main()

; int sum = 0, min = 100, max = 0;

int i, *p;

for(i = 0; i < 7; i++)

printf("總分為%d,平均分為%.2f。\n", sum, sum / 7.0);

for(p = g; p <= &(g[7-1]); p++)

printf("最低分為%d,最高分為%d。", min, max);

return 0;

}

結果:

C語言指標陣列與陣列指標

初學者總是分不出指標陣列與陣列指標的區別。其實很好理解 指標陣列 首先它是乙個陣列,陣列的元素都是指標,陣列佔多少個位元組由陣列本身決定。它是 儲存指標的陣列 的簡稱。陣列指標 首先它是乙個指標,它指向乙個陣列。在32 位系統下永遠是佔4 個位元組,至於它指向的陣列佔多少位元組,不知道。它是 指向陣...

C語言指標 指標與陣列

1 指標與一維陣列 2 指標與二維陣列 3 指標陣列與陣列指標 指標裡面最難的一種就是指標與陣列了,對於指標和二維陣列來說這裡面的關係比較複雜。牽涉到編譯器的原理和編譯過程。1 指標與一維陣列 指標是指向乙個記憶體的位址,一維陣列的陣列名代表一塊記憶體 這個陣列 的首位址,和陣列首元素的位址一樣,但...

C語言指標 指標與陣列

一 指標的運算 指標可以進行三種運算 1.指標加上整數 如果指標p指向陣列a i 那麼指標p j 指向a i j 前提是a i j 存在!2.指標減去整數 如果指標p指向陣列a i 那麼指標p j 指向a i j 前提 a i j 存在!3.兩個指標相加減 兩指標必須指向同一變數!否則運算沒有意義的...