例1:输入整型数组的10个元①下标法(直观)素,再顺序输出10个元素for(i=0;i<10;i++)printf("%d ",a[i]);scanf("%d",a+i);int a[10], i;固定指针法1for (i=0;i<10;i++)for(i=0;i<10++printf("%d ", *(a+i)):scanf("%d",&a[]);for(i=0;i<10;i++)③固定指针法2int *p;5printf("%d ",a[]);for(i=0,p=a;i<10;i++)printf("%d",*(p+i)):112345678940游动指针法(效率高)int*pfor (p=a;p<(a+10);p++)printf("%d ", *p);注意1:指向数组的指针变量p的值可以改变。例1:p++是合法的注意2:数组名a是地址常量、是不允许改变的。例2:a++1/错
① int a[10], i; ② for(i=0;i<10;i++) ③ scanf("%d" ,&a[i]); ④ for(i=0;i<10;i++) ⑤ printf("%d " ,a[i]); ① 下标法 (直观) for (i=0;i<10;i++) printf("%d " ,a[i]); ② 固定指针法1 for (i=0;i<10;i++) printf("%d " , *(a+i)); ④ 游动指针法 (效率高) int *p; for (p=a;p<(a+10);p++) printf("%d " , *p); ③固定指针法2 int *p; for (i=0,p=a;i<10;i++) printf("%d " , *(p+i)); scanf("%d" ,a+i); 例1:输入整型数组的10个元 素,再顺序输出10个元素。 注意1:指向数组的指针变量p的值可以改变。例1:p++是合法的 注意2:数组名a是地址常量、是不允许改变的。例2:a++ //错
课堂练习,下列程序执行结果?为什么?#include<stdio.h>//游动指针法21int main()//例9.11--9.123{ int *p,i,a[10];循环结束后,p指向a[9]后p=a;面的存储单元5for (i=0;i<10;i++)(*p=i; p++; ].p=a;I/T执行此循环for(i=0;i<10;i++,p++)出问题!!printf("%d·10printf("In");1return O;121
① #include <stdio.h> //游动指针法2 ② int main()//例9.11-9.12 ③ { int *p,i,a[10]; ④ p=a; ⑤ for (i=0;i<10;i++) ⑥ { *p=i; p++; } ⑦ ⑧ for (i=0;i<10;i++,p++) ⑨ printf("%d " , *p); ⑩ printf("\n"); ⑪ return 0; ⑫ } 循环结束后,p指向a[9]后 面的存储单元 执行此循环 出问题!! p=a; // 课堂练习,下列程序执行结果?为什么? √