★数组元素表示方法 [川变址运算符 a[i]台*(a+i) 地址 元素 地址 元素 a[0] a[0] *8 p a[0] *p p[o] a+l a[l叮 a[1] *(a+1) p+1 a叮 *(p+1) p[1叮 a+2 a2] a[2]*(a+2) D+2 a2] *(p+2) p[2] a3] a[3] a+9 a[9] a[9] *(a+9) p+9 a9] *(p+9) p[叨 下标法 指针法 a[i]台p[]台*(p+i)台*(a+i)
数组元素表示方法 a[0] a[1] a[2] a[3] a[9] . a a+9 a+1 a+2 地址 元素 下标法 a[0] a[1] a[2] a[9] a[0] a[1] a[2] a[3] a[9] . p p+9 p+1 p+2 地址 元素 指针法 *p *(p+1) *(p+2) *(p+9) [] 变址运算符 a[i] *(a+i) a[i] p[i] *(p+i) *(a+i) *a *(a+1) *(a+2) *(a+9) p[0] p[1] p[2] p[9]
例 数组元素的引用方法 c Ch9 51.c mainO { int a[5],*pa,i; for(i=0;i<5;i++) a[i]=i+1; a0] pa pa-a; a[1] 2 for(i=0;i<5;i++) a[2] 3 printf("*(pa+d):%d\n",i,*(pa+i)); a[3] 4 for(i=0;i<5;i++) a4] 5 printf("*(a+%d):%d\n"i,*(a+i)); for(i=0;i<5;i++) printf("pa[%d]:%d\n",i,pa[i]); for(i=0;i<5,i++) printf("a[od]:%d n",i,a[i]):
a[0] a[1] a[2] a[3] a[4] 例 数组元素的引用方法 main() { int a[5],*pa,i; for(i=0;i<5;i++) a[i]=i+1; pa=a; for(i=0;i<5;i++) printf("*(pa+%d):%d\n",i,*(pa+i)); for(i=0;i<5;i++) printf("*(a+%d):%d\n",i,*(a+i)); for(i=0;i<5;i++) printf("pa[%d]:%d\n",i,pa[i]); for(i=0;i<5;i++) printf("a[%d]:%d \n",i,a[i]); } 12345 pa
例inta[1={1,2,3,4,5,6,7,8,9,10},*p-a,i 数组元素地址的正确表示: (A)&(a+1) (B)a++ (C)&pVkD)&p[的 数组名是地址常量 p++p- () a++,a- (x) a+1,*(a+2) (V
例 int a[]={1,2,3,4,5,6,7,8,9,10},*p=a,i; 数组元素地址的正确表示: (A)&(a+1) (B)a++ (C)&p (D)&p[i] 数组名是地址常量 p++,p- (✓) a++,a- () a+1, *(a+2) (✓)
例注意指针变量的运算 例 void main() { inta[0={5,8,7,6,2,7,3}; a 6 0 int y,*p=&a[1]; 8 1 y(*-pt+; printf(%d”,y); 7 2 printf"%d",a[Ol); 6 3 2 4 7 5 3 6 输出:56
例 void main() { int a []={5,8,7,6,2,7,3}; int y,*p=&a[1]; y=(*-p)++; printf(“%d ”,y); printf(“%d”,a[0]); } 输出:5 6 pp 5876273 0123456 a 例 注意指针变量的运算 6
例注意指针的当前值 c Ch9 6.c mainO) int i,*p,a[7]; 5 0 p p-a, 8 1 for(i=0;i<7;i++) 7 2 scanf("%d",p++), 6 3 printf("\n"); 2 4 p=a; for(i=0;i<7;i++,p++) 7 5 printf("%d",*p); 3 6 指针变量可以指到数组后的内存单元 D
main() { int i,*p,a[7]; p=a; for(i=0;i<7;i++) scanf("%d",p++); printf("\n"); for(i=0;i<7;i++,p++) printf("%d",*p); } 例 注意指针的当前值 p=a; p p 5 8 7 6 2 7 3 0 1 2 3 4 5 6 a p p p p p p 指针变量可以指到数组后的内存单元