正在加载图片...
指针作为参数可以改变主调函数中变量的值 例4:对输入的两个整数按大小顺序输出 Void Swap(int pl, int p2) i int temp p=*pl; pl=*p2, *p2=temp; 1 Void maino f int a, b I, pointer 2 scanf(%d,9%d”,&a&b) pointer 1=&a, pointer 2=&b, if (ab)swap(pointer l, pointer 2); printf("n%d,%dn”,ab); 10.3指针与一维数组( Pointer and Arrays) 通过指针访问一维数组 数组结构的分析 设有数组定义为:inta5];则有: (1)a表示数组在内存中的首地址,也就是数组中第1 个元素的首地址,它是一个地址常量,其值由系 统在编译时确定,程序运行期间不能改变。 (2)数组中的各元素表示为: a0]、a[、a[2]、a[3]、a[4 或者是: (a+0)(或*a)、*a+1)、*(a+2)、*a+3)、*a+4) (3)数组中的各元素的地址表示为 &a[0]、&a[l、&a[2]、&a[3]、&a[4] 或者是:a+0(或a)、a 2、a+3 (4)另一种解释:数组名是基地址,下标是偏移量,a就表示以a 为基地址,偏移i个元素的那个元素 (5)数组的逻辑结构如下 &a[0]&a[1]&a[2]&a[3]&a[4] ]a[l]al2]a[3]a[4] 2、指针与数组的关系 现定义一个指针变量:int*p 并进行赋值:p=a,或p=&a[0指针作为参数可以改变主调函数中变量的值。 例 4:对输入的两个整数按大小顺序输出 Void Swap( int *p1,int *p2) { int temp; temp=*p1; *p1=*p2; *p2=temp; } Void main() { int a,b; int *pointer_1,*pointer_2; scanf(“%d,%d”,&a,&b); pointer_1=&a; pointer_2=&b; if (a<b) swap(pointer_1,pointer_2); printf(“\n %d,%d\n”,a,b); } 10.3 指针与一维数组 (Pointer and Arrays) 一、通过指针访问一维数组 1、数组结构的分析 设有数组定义为:int a[5]; 则有: (1) a 表示数组在内存中的首地址,也就是数组中第 1 个元素的首地址,它是一个地址常量,其值由系 统在编译时确定,程序运行期间不能改变。 (2) 数组中的各元素表示为: a[0]、a[1]、a[2]、a[3]、a[4] 或者是: *(a+0)(或*a)、*(a+1)、*(a+2)、*(a+3)、*(a+4) (3) 数组中的各元素的地址表示为: &a[0]、&a[1]、&a[2]、&a[3]、&a[4] 或者是:a+0(或 a)、a+1、a+2、a+3、a+4 (4) 另一种解释:数组名是基地址,下标是偏移量,a[i]就表示以 a 为基地址,偏移 i 个元素的那个元素。 (5) 数组的逻辑结构如下: 2、指针与数组的关系 现定义一个指针变量:int *p; 并进行赋值:p=a; 或 p=&a[0];
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有