《PPT8-4 指针变量作为函数参数——再谈数据交换.pdf》由会员分享,可在线阅读,更多相关《PPT8-4 指针变量作为函数参数——再谈数据交换.pdf(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、指针变量作为函数参数 再谈数据交换 函数的参数不仅可以 是整型、浮点型、字符型 数据,还可以是指针类型。 指针变量作为函数参数 其作用是将一个变量的地 址传递给被调用函数,由被调 函数的形参指针变量接收,使 形参指针变量指向实参指针变 量指向的变量。 指针变量作为函数参数 即实参与形参共同指向同 一片内存空间,此时,形参指 向的存储空间中的数据改变, 实参指向的存储空间内的数据 也同时改变。这种传递方式为 地址传递。 指针变量作为函数参数 数据交换 实例8.3输入两个整数a和 b,使a中存放两者最小值, b中存放两者最大值,并输 出a和b,要求用指针作为 函数参数实现。 数据交换 解题思路:定
2、义swap函数,形 参point_1、point_2为指针变 量,其作用是根据*point_1、 *point_2的值的情况决定是否 交换*point_1、*point_2的值。 int main(int argc, char *argv) int a; int b; scanf(a = %d,b = %d, swap( printf(a = %d,b = %dn,a,b); return 0; 指针变量的初始化和赋值 a 5 b 3 指针变量的初始化和赋值 a 5 point_1 if(*point_1 *point_2) temp = *point_1; *point_1 = *point
3、_2; *point_2 = temp; swap( printf(a = %d,b = %dn,a,b); 指针变量的初始化和赋值 a 3 point_1 if(*point_1 *point_2) temp = *point_1; *point_1 = *point_2; *point_2 = temp; swap( printf(a = %d,b = %dn,a,b); 思考 a 5 point_1 if(*point_1 *point_2) *temp = *point_1; *point_1 = *point_2; *point_2 = *temp; swap( printf(a = %d,b = %dn,a,b); 思考 a 5 point_1 5 b 3 point_2 3 temp 5 void swap(int point_1,int point_2) int temp; if(point_1 point_2) temp = point_1; point_1 = point_2; point_2 = temp; swap(a,b); printf(a = %d,b = %dn,a,b); 3 5 a = 5,b = 3 解决问题 数据交换总是给人带来扑朔迷离的感觉,画图 解题是工程技术人员必备的基本功,只要掌握传参 的本质,指针即地址的本质,终会揭开谜团。