若有如下定义: int a[10, *p= a; 或inta[10],p=&a[o]; p+i和a+就是a[的地址,p+和a+指向a 数组的第个元素。p+和a+的实际地址 是: :a+id。 ■*(p+)或*(a+)是指针p+或a+所指向的数 组元素,即a[]
◼ 若有如下定义: int a[10], *p = a; 或 int a[10], *p = &a[0]; 则: ◼ p+i和a+i就是a[i]的地址, p+i和a+i指向a 数组的第i个元素。 p+i和a+i的实际地址 是:a+id。 ◼ *(p+i)或*(a+i)是指针p+i或a+i所指向的数 组元素,即a[i]
■实际编译时,将数组元素a处理成*a+),找 出该单元中的内容。 ■例如:a数组的首地址为1000,则a3]的地址是 1000+3×2=1006,从1006地址所标志的整型单 元中取出的值,就是a3]的值。 ■指向数组的指针变量p也可以带下标,如p与 (p+)等价。 atl 1000 1006 a[o]a[11a3] a a[9 p+
◼ 实际编译时,将数组元素a[i]处理成*(a+i),找 出该单元中的内容。 ◼ 例如:a数组的首地址为1000,则a[3]的地址是 1000+32=1006,从1006地址所标志的整型单 元中取出的值,就是a[3]的值。 ◼ 指向数组的指针变量p也可以带下标, 如p[i]与 *(p+i)等价。 a[0] a[1] a[3] a[i] a[9] 1000 1006 a p p+i a+i
引用一个数组a的元素,可以用3种方法: (1)下标法,如形式a[ (2)首地址加偏移量,如*(a+),其中a为 数组名,是数组的首地址。 (3)指针法,*(p+。p是指针变量,p=a
引用一个数组a的元素,可以用3种方法: ➢(1)下标法,如形式a[i]。 ➢ (2) 首地址加偏移量,如*(a+i),其中a为 数组名,是数组的首地址。 ➢(3)指针法,*(p+i)。p是指针变量, p=a
例整型数组a有10个元素,可用3种方 法输出各元素值。 1、下标法 main() ti,a[10] for(=0;i<10;i+)a[=i*i; printf(n); for(i=0; i< 10; i++)printf(%d, a);
例 整型数组a有10个元素,可用3种方 法输出各元素值。 1、下标法 main( ) { int i, a[10]; for(i = 0; i < 10; i++) a[i] = i * i; printf(“\n”); for (i = 0; i < 10; i++) printf(“%d” ,a[i]); }
2、首地址加偏移量 main() int a[10,j; for(=0;j<10j++) []=j*j printf\n; for(j=0;j<10;j++) printf(%od*(a+D);
2、首地址加偏移量 main( ) { int a[10], j; for(j = 0; j < 10; j++) a[j] = j * j; printf(“\n”); for(j = 0; j < 10; j++) printf(“%d”, *(a+i)); }