第10章指针类型 两点说明:蕌 1)若在函数中交换指针变量的值,实参r、s并不改 变,指针参数亦是传值。例如:蕌 int*p;蕌 pl;pl=p2;p2=p;蕌 不要希望如此完成处理。 (2)函数中交换值时不能使用无值的指针变量作临时 变量。例如:蕌 int x p=*p1;*pl=*p2;*p2=*p;蕌 p无值,*p无意义。蕌
第10章 指针类型 两点说明: (1) 若在函数中交换指针变量的值, 实参r、 s并不改 变,指针参数亦是传值。 例如: int *p; p=p1; p1=p2; p2=p; 不要希望如此完成处理。 (2) 函数中交换值时不能使用无值的指针变量作临时 变量。 例如: int *p; *p=*p1; *p1=*p2; *p2=*p; p无值, *p无意义。
第10章指针类型 102指针与数组 10.21指向一维数组的指针变量 可以利用指向一维数组的指针变量,完成数组数据 的操作处理,具体步骤如下 (1)定义与数组相同基类型的指针变量 即定义指向数组的指针变量。蕌 (2)在指针变量与要处理的数组(元素)之间建立关 联。只需将相应数组的首地址赋给指针变量。蕌 (3)使用指针所指向的变量来完成数组元素(数组) 的操作处理
第10章 指针类型 10.2 指针与数组 10.2.1 指向一维数组的指针变量 可以利用指向一维数组的指针变量, 完成数组数据 的操作处理,具体步骤如下: (1) 定义与数组相同基类型的指针变量。 即定义指向数组的指针变量。 (2) 在指针变量与要处理的数组(元素)之间建立关 联。只需将相应数组的首地址赋给指针变量。 (3) 使用指针所指向的变量来完成数组元素(数组) 的操作处理
第10章指针类型 例如,要利用指针处理整型数组a:蕌 Int s ;泮*定义指针变量*{蕌 (2)p=a;或p=&a[0];/建立关联*/蕌 p是下标为i的数组的元素地址 o日日 (3)*p即a[0],*(pi)即a[i]。蕌 *p++是p当前指向的数组元素的下一个元素。蕌 如此得到处理数组的指针法
第10章 指针类型 例如,要利用指针处理整型数组a: (1) int *p; /*定义指针变量*/ (2) p=a; 或p=&a[0]; /*建立关联*/ p+i是下标为i 的数组的元素地址。 (3) *p即a[0], *(p+i)即a[i]。 *p++是p当前指向的数组元素的下一个元素。 如此得到处理数组的指针法
第10章指针类型 与指针法相类似的是处理数组的位移法,或称 首地址法。通过数组的首地址计算出下标为i的数 组的元素地址(a+i),*(a+i)即a[i。蕌 指针法中p是变量,用来存放数组元素的地址 位移法中a是常量,代表数组的首地址
第10章 指针类型 与指针法相类似的是处理数组的位移法,或称 首地址法。 通过数组的首地址计算出下标为i的数 组的元素地址(a+i), *(a+i)即a[i]。 指针法中p是变量,用来存放数组元素的地址。 位移法中a是常量,代表数组的首地址
第10章指针类型 例10-4分别用下标法、指针法、位移法输入、输出 数组元素。蕌 方法 泮*程序10-41,下标法实现数组的输入、输出*潼 main()潼 inta[10];潼 湩 for(i=0;i<10;计+)潼 scanf("ood",&a[i);湩 printf("n");潼 for(i=0;i<10;i+)潼 printf("%3d",a[i);潼
第10章 指针类型 例 10-4 分别用下标法、指针法、位移法输入、输出 数组元素。 方法一: /*程序10 — 4 — 1,下标法实现数组的输入、 输出*/ main( ) { int a[10]; int i; for (i=0; i<10; i++) scanf (″%d″ , &a[i]); printf(″\n″); for (i=0; i<10; i++) printf(″%3d″ , a[i]); }