扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
/ 编写c语言程序,实现交换两个变量值的操作。要求:使用形参为指针的函数swap完成交换功能。主函数中,使用整型指针从键盘输入两个整数,通过调用swap完成交换 输出交换前后的变量值进行比较。
在伊通等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站制作、网站设计、外贸网站建设 网站设计制作按需定制制作,公司网站建设,企业网站建设,品牌网站制作,成都全网营销,外贸营销网站建设,伊通网站建设费用合理。
首先,就是最基本的知识,写头文件、函数声明、定义变量。下面还需要定义指针,需要定义两个指针p1和p2,然后把a的地址赋值给p1,把b的地址赋值给p2。
这个无法交换数据。C语言函数参数的基本规则是值传递,所以传递时只能实现实参向形参的单向的、值的传递。这就是为什么需要使用指针才能实现值交换的原因。
int *p, int *q){ int temp;//定义临时变量 存放中间值 temp = *p;p = *q;q = temp;} 注意:不能直接写void swap(int i, int j);因为那只是临时变量,函数调用完后,便释放空间,两个值并没有交换。
不考虑变量类型,而直接交换值。需要三个参数,两个变量地址,以及变量所占的空间。
这个就是2种函数调用方式中的地址传递调用方式(另一种是传值方式)。
如果直接传值(void swap(int a,int b)),那么无论在函数里如何修改这个值,都修改的是函数里那个变量的值,不会影响外面。
函数调用的原理是这样的,传来一个参数,被调函数自己创建一个空间用来存储自己的变量,在这个里面改变的结果都不能直接返回到主调函数的内存单元中去,一旦被调函数结束,此内存空间就被释放,你改变的那个变量也就消失了。
指针就是一个地址,用指针传递就是传递一个地址,你对一个地址所对应的内存操作,当然就会在被调函数中改变调用函数的变量的值。
int temp;定义临时变数 存放中间值 temp = *p;p = *q;q = temp;} 注意:不能直接写void swap(int i, int j);因为那只是临时变数,函式呼叫完后,便释放空间,两个值并没有交换。
主函数中,使用整型指针从键盘输入两个整数,通过调用swap完成交换 输出交换前后的变量值进行比较。
不知道你要交换的两个变量类型,所以这里以整型数据交换为例,以下swap函数实现了交换两个整型变量值的功能:include stdio.h// 交换给定指针指向整型变量的值。
swap(&a,&b);printf(%d %d\n,a,b);return 0;} swap操作实现交换两个容器内所有元素的功能。要交换的容器的类型必须匹配: 必须是相同类型的容器,而且所存储的元素类型也必须相同。
要用函数实现两个数的交换,则函数参数必须定义为指针形式,否则函数中对数值的修改将不会影响主调函数,这是C语言的规则。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流