网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

【C语言】用函数交换两个数字(涉及指针初步)-创新互联

今天学到了函数,想写一个交换两个数字的函数。最开始写的代码如下:
设想在函数里用第三变量进行交换
#define _CRT_SECURE_NO_WARNINGS 1//vs IDE scanf函数报错问题解决方案
#includevoid swap(int x, int y)
{int tmp = 0;
	tmp  = x;
	x = y;
	y = tmp;
}
int main()
{int a = 10;
	int b = 20;
	printf("交换前a=%d,b=%d\n", a, b);
	swap(a, b);
	printf("交换后a=%d,b=%d\n", a, b);

    return 0;
}

结果发现输出之后并没有发生交换

经教程才知道,参数传入函数的只是数值,数值在函数里交换,并没有引起实参a,b的交换。
所以这里需要用到指针变量,用指针指向变量的地址,进行交换,才能完成想要的功能。
ps:个人理解,形参改变不能改变实参,只能用形参指针变量指向实参地址,去改变指向内容,从而间接改变实参变量。(不知道个人理解对不对,望大佬指正)
代码如下:

为朝阳等地区用户提供了全套网页设计制作服务,及朝阳网站建设行业解决方案。主营业务为成都做网站、网站制作、朝阳网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
#define _CRT_SECURE_NO_WARNINGS 1
#includevoid swap(int* pa, int* pb)
{int tmp = 0;
	tmp  = *pa;
	*pa=*pb;
	*pb = tmp;
}
int main()
{int a = 10;
	int b = 20;
	printf("交换前a=%d,b=%d\n", a, b);
	swap(&a, &b);
	printf("交换后a=%d,b=%d\n", a, b);
    return 0;
}

这里运行结果:

获得了想要的结果。

新手一枚,码字不易
转载请点赞

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章名称:【C语言】用函数交换两个数字(涉及指针初步)-创新互联
本文网址:http://bjjierui.cn/article/ppejs.html

其他资讯