81指和指变量 813指针的基本运算 10 1404 指针的关系远算 1405 ④指向同一数组的两个指针可以进行关系a2006 运算,表明它们所指向元素的相互位置关系。 407 如:p2>p1、p2=pl a[230108 ②指针与一个整型数据进行比较是没有意 1409 义的。 ③不同类型指针变量之间比较是非法的。 40 1410 ④NULL可以与任何类型指针进行==、! 的关系运算,用于判断指针是否为空指针。a45012 1413 2021/2/21
2021/2/21 11 指针的关系运算 8.1 指针和指针变量 8.1.3 指针的基本运算 404 405 406 407 408 409 410 411 412 413 a[0] a[1] a[2] a[3] a[4] 30 20 10 40 50 p1 p2 ① 指向同一数组的两个指针可以进行关系 运算,表明它们所指向元素的相互位置关系。 如:p2 > p1、p2 == p1。 ② 指针与一个整型数据进行比较是没有意 义的 。 ③ 不同类型指针变量之间比较是非法的。 ④ NULL可以与任何类型指针进行==、!= 的关系运算,用于判断指针是否为空指针
82指与数组 12 821指向数组的指针 维数组的指针 [0 例如:inta[10],*p; ()数组名是该数组的指针 a是数组的首地址(即a[0]的地址),是一 个指针常量。 a=&a[0],a+1=&a[1],…,,a+9=是a[9] 数组元素的下标表示法: a[0],a[1],,a[i],,,,a[9] 数组元素的指针表示法: (a+0),*(a+1),…,*(a+i),…,,*(a+9) 2021/2/21
2021/2/21 12 ⑴ 数组名是该数组的指针 a是数组的首地址(即a[0]的地址),是一 个指针常量。 a = &a[0],a+1 = &a[1], … ,a+9 = &a[9] 数组元素的下标表示法: a[0],a[1], … ,a[i], … ,a[9] 数组元素的指针表示法: *(a+0),*(a+1), … ,*(a+i), … ,*(a+9) 8.2 指针与数组 8.2.1 指向数组的指针 1. 一维数组的指针 例如: int a[10],*p; a[0] a[9] p a
82指与数组 13 821指向数组的指针 维数组的指针 [0 (2)指向一维数组元素的指针变量 由于数组元素也是一个内存变量,所 以此类指针变量的定义和使用与指向变量 的指针变量相同。例如:inta[10],*p; p=a;(或p=&a[0];) 当p指向a[0时,用p表示数组元素 下标法: p[0],p[],…,,p[i] p 指针法: (p+0),*(p+1),…,,*(p+1),…,,*(p+9) 2021/2/21
2021/2/21 13 当p指向a[0]时,用p表示数组元素 下标法: p[0],p[1], … ,p[i], … ,p[9] 指针法: *(p+0),*(p+1), … ,*(p+i), … ,*(p+9) a[0] a[9] p 8.2 指针与数组 8.2.1 指向数组的指针 1. 一维数组的指针 ⑵ 指向一维数组元素的指针变量 由于数组元素也是一个内存变量,所 以此类指针变量的定义和使用与指向变量 的指针变量相同。例如:int a[10],*p; p = a;(或 p = &a[0];) a
82指与数组 14 821指向数组的指针 维数组的指针 1a[0 【例8.3】用指针法输出数组元素。 main fint a[10,i,*p; for(i=0;i<10;i++) scanf(%d", a+i); 3456 for(i=0;i<10;i++) printf( %04d",(a+DD; printf("n; for(p=a,i=0;i<10;i++) 12345678910 printf(oo4d",(p+i); 9 12345678910 printf("In"); 10a[9] 2021/2/21
2021/2/21 14 a[0] a[9] p a 【例8.3】用指针法输出数组元素。 main( ) { int a[10], i, *p; for (i=0; i<10; i++) scanf("%d", a+i); for (i=0; i<10; i++) printf("%4d ",*(a+i)); printf("\n"); for (p=a,i=0; i<10; i++) printf("%4d ",*(p+i)); printf("\n"); } 8.2 指针与数组 8.2.1 指向数组的指针 1. 一维数组的指针 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
82指与数组 15 821指向数组的指针 维数组的指针 [0] 【例8.3】用指针法输出数组元素。 main( f int a10, i,*p for(p=a;p≤a+10;p++) scanlon d"’p); for(p=a;p≤a+10;p++) printf(od",p); printf(n); 1234567890 [9] 2021/2/21
2021/2/21 15 a[0] a[9] p a 【例8.3】用指针法输出数组元素。 main( ) { int a[10], i, *p; for (p=a; p<a+10; p++) scanf("%d",p); for (p=a; p<a+10; p++) printf("%d ",*p); printf("\n"); } 8.2 指针与数组 8.2.1 指向数组的指针 1. 一维数组的指针 1 2 3 4 5 6 7 8 9 10