C Programming Language>第七章 is: int a[10], *pa; pa=&a[5] 前趋元素当前元素后继元素 0 34 5 67 89 a a 为 √pa+1指向当前所指元素的后一个元素 √pa+i指向当前所指元素之后的第个元素; US bajia( ustc,odILcnb#a
C Programming Language>第七章 is: int a[10], *pa; pa=&a[5] 前趋元素当前元素后继元素 0 34 5 67 89 a a 为 √pa-1指向当前所指元素的前一个元素 √pa-i指向当前所指元素之前的第个元素; US bajia( ustc,odILcnb#a
C Programming Language>第七章 i int a[10], *pa; pa=&a [5] 前趋元素当前元素后继元素 01 3456789 pa 设 系统的内部实现: pa+i所指向的地址=pa+i*(比例因子 数组元素所占字节数 U bajia( ustc, odILcm 8:
设: int a[10],*pa; pa=&a[5]; pa 前趋元素 当前元素 后继元素 0 1 2 3 4 5 6 7 8 9 a 系统的内部实现: pa+i 所指向的地址 = pa + i * (比例因子) 数组元素所占字节数 系统的内部实现: pa+i 所指向的地址 = pa + i * (比例因子) 数组元素所占字节数
C Programming Language>第七章 2)数组元素的几种表示:设inta[10],pa=a; 下标a数组数组名指针下标法数组名法指针法指针数组法 0 p a|0 (pa) pa[0 a+1 a1l*(a+1)*(pa+1)pa[1 a+2pa+2a2]t(a+2)*(pa+2)pa2 a+i patI a *(ati *(pat i pa[i a+9pa+9a⑨9 +9)*pa+9pa9 位序 地址 数组元素的表示(值) U≤ Lc duino 8a
0 1 2 … … i … … … 9 0 1 2 … … i … … … 9 a pa a[0] a+1 pa+1 a[1] a+2 pa+2 a[2] … … … … a+i pa+i a[i] … … … … … … a+9 pa+9 a[9] 下标 a数组 数组名 指针 下标法 *(a) *(a+1) *(a+2) … … *(a+i) … … … *(a+9) 数组名法 *(a) *(a+1) *(a+2) … … *(a+i) … … … *(a+9) *(a) *(a+1) *(a+2) … … *(a+i) … … … *(a+9) 数组名法 *(pa) *(pa+1) *(pa+ 2) … … *(pa+ i) … … … *(pa+ 9) 指针法 *(pa) *(pa+1) *(pa+ 2) … … *(pa+ i) … … … *(pa+ 9) *(pa) *(pa+1) *(pa+ 2) … … *(pa+ i) … … … *(pa+ 9) 指针法 pa[0] pa[1] pa[2] … … pa[ i] … … … pa[ 9] 指针数组法 pa[0] pa[1] pa[2] … … pa[ i] … … … pa[ 9] pa[0] pa[1] pa[2] … … pa[ i] … … … pa[ 9] 指针数组法 位序 地址 (2) 数组元素的几种表示:设 int a[10],pa=a; 数组元素的表示(值)
C Programming Language>第七章 void minot [例7-2]运算 static int al10-={1,2,3,4,5,6,7,8,9,10};中数组元素的 inti,六 表示方式的优 for(i=0;i<10;i++) 劣比较。 printf(“%dn”,alil);∥下标法 for(i=0;i<10;i++) printf(“%dn”,*(a+i);数组名(地址常量)法 for(p=a; p<a+10; p++) printf(%odin”,*p) 指针变量法 0下标法和数组名法执行效果相同,0编译程序将 a2[i转换为*(a+)处理,即先计算元素地址,然后存 取,较费时; U bajia( ustc, odILcm 8:
void main(){ static int a[10]={1,2,3,4,5,6,7,8,9,10}; int i,*p; for(i=0; i<10; i++) printf(“%d\n”, a[i]); //下标法 for(i=0; i<10; i++) printf(“%d\n”, *(a+i)); //数组名(地址常量)法 for(p=a; p<a+10; p++) printf(“%d\n”, *p); //指针变量法 } 下标法和数组名法执行效果相同,C编译程序将 a[i]转换为* (a+i)处理,即先计算元素地址,然后存 取,较费时; [例7-2 ]运 算 中数组元素的 表示方式的优 劣比较