123指针变量做函数的参数 「例123利用指针变量作为函数的参数,用函数的方法再 次实现上述功能 main( void changeo; int*pl, *p2, a, b, *t; scanf(%od, %od", &a, &b) pl=&a; p2=&b; change(pl, pz); /*函数调用*/ printf("% d,%dⅦn",“pl,p2); void change(int*ptl, int*pt2 int t if( ptl<*pt2 {t*pt1;*pt1=*pt2;*pt2=t;} return; 第十二章指针
第十二章 指针 [例12.3] 利用指针变量作为函数的参数,用函数的方法再 次实现上述功能。 main ( ) { void change(); int *p1,*p2,a,b,*t; scanf("%d,%d",&a,&b) ; p1=&a; p2=&b; change(p1,p2); / *函数调用* / printf("%d,%d\n", *p1, *p2); } void change(int *pt1,int *pt2) { int t; if(*pt1<*pt2) { t=*pt1;*pt1=*pt2;*pt2=t;} return; } 12.3 指针变量做函数的参数
124指针与数组 指向数组元素的指针变量的定义与赋值 ■指向数组元素的指针变量的定义与指向变量的 指针变量的定义相同 如:inta[10 int x 对该指针元素赋值:p=&a[0 把a0元素的地址赋给指针变量p,即p指向数 组的第0号元素, 数组名代表数组的首地址,也就是第一个元素 的地址。因此,p=&a[0];与p=a;等价。 第十二章指针
第十二章 指针 ◼ 指向数组元素的指针变量的定义与指向变量的 指针变量的定义相同 如:int a[10]; int *p; ◼ 对该指针元素赋值: p=&a[0]; 把a[0]元素的地址赋给指针变量p,即p指向a数 组的第0号元素, ◼ 数组名代表数组的首地址,也就是第一个元素 的地址。因此,p=&a[0];与p=a;等价。 12.4 指针与数组 一、指向数组元素的指针变量的定义与赋值
124指针与数组 指向数组元素的指针变量的定义与赋值 ■在定义指针变量时可以赋给初值: int*p=&a|0;它等效于: int *p; p=&a[0l: ■定义时也可以写成: int“p=a; 它的作用是将a的首地址(即a0的地址)赋给 指针变量p(而不是*p)。 第十二章指针
第十二章 指针 ◼ 在定义指针变量时可以赋给初值: int *p=&a[0];它等效于: int *p; p=&a[0]; ◼ 定义时也可以写成: int *p=a; ◼ 它的作用是将a的首地址(即a[0]的地址)赋给 指针变量p(而不是*p)。 12.4 指针与数组 一、指向数组元素的指针变量的定义与赋值
124指针与数组 二、通过指针引用数组元素 ■设p已定义为指针变量,并已给它赋了一个地址,使它 指向某一个数组元素。如果有以下赋值语句: p=1; ■表示对p当前所指向的数组元素赋以一个值(值为1) ■C规定p+1指向数组的下一个元素而不是将p值简单地 加1。 如,数组元素是实型,每个元素占4个字节,则p+1意 味着使p的原值(地址)加4个字节,以使它指向下一元 素。p+1所代表的地址值实际上是p+1×d,d是一个数 组元素所占的字节数(对整型,d=2;对实型,d=4; 对字符型,d=1)。 第十二章指针
第十二章 指针 ◼ 设p已定义为指针变量,并已给它赋了一个地址,使它 指向某一个数组元素。如果有以下赋值语句: *p=1; ◼ 表示对p当前所指向的数组元素赋以一个值(值为1)。 ◼ C规定p+1指向数组的下一个元素(而不是将p值简单地 加1)。 如,数组元素是实型,每个元素占4个字节,则p+1意 味着使p的原值(地址)加4个字节,以使它指向下一元 素。p+1所代表的地址值实际上是p+1d,d是一个数 组元素所占的字节数(对整型,d=2;对实型,d=4; 对字符型,d=1)。 12.4 指针与数组 二、通过指针引用数组元素
124指针与数组 二、通过指针引用数组元素 ■如果p的初值为&a[0],则: (1)p+和a+就是a的地址,或者说,它们指向a数组的 第i个元素。 (2)*(p+)或a+是p+ia+语所指向的数组元素,即 a[] (3)指向数组的指针变量也可以带下标,如p[与*(p+i)等 价 (4)当指针指向一串连续的存储单元时,可以对指针进行加 上或减去一个整数,这种操作称为指针的移动 (5)指针不允许进行乘、除运算,移动指针时,不允许加上 或减去一个非整数,对指向同一串连续存储单元的两个 指针只能进行相减操作。 第十二章指针
第十二章 指针 ◼ 如果p的初值为&a[0] ,则: (1) p+i和a+i就是a[i]的地址,或者说,它们指向a数组的 第i个元素。 (2) *(p+i)或*(a+i)是p+i或a+i所指向的数组元素,即 a[i]。 (3)指向数组的指针变量也可以带下标,如p[i]与*(p+i)等 价。 (4)当指针指向一串连续的存储单元时,可以对指针进行加 上或减去一个整数,这种操作称为指针的移动。 (5)指针不允许进行乘、除运算,移动指针时,不允许加上 或减去一个非整数,对指向同一串连续存储单元的两个 指针只能进行相减操作。 12.4 指针与数组 二、通过指针引用数组元素