C++引用符&和指针*在函数中的使用方法和区别-创新互联

明确几个问题:函数只可以返回一个参数;值传递的过程若不用一些特殊符号如static,其生存周期是在函数的局部范围内,即用完函数就消失

为崇明等地区用户提供了全套网页设计制作服务,及崇明网站建设行业解决方案。主营业务为成都做网站、网站设计、外贸营销网站建设、崇明网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

我们都知道在函数调用过程中存在着参数传递的问题。在值传递的过程中,我们只是简单的把数值传递给了参数,这个过程大家可以理解成数学运算中的=,若a=2,b=a,那么b的值的改变肯定是不会影响a的值,这带来了一些问题,比如我们如果想要在函数中交换a和b的值,那么a和b的值只在函数内做了局部交换,以简单的思考方式:我们将a的值给了a1,a1=a,将b的值给了b1,b1=b,在函数内操作,就是改变a1和b1的值,那么与a和b有关系吗,答案是肯定没有的,那怎么能够让a和b扯上关系呢,这里有两种方法,一种是利用&引用符,注意这个是引用符号,不是C语言里的取地址,另一种就是采用指针。


采用引用符&

关于引用符,我理解的是,MAC-10有一个名字叫MAC-10,当然我们还可以给他起一个绰号叫吹风机,那么在RUSHB的时候,我们可以叫队友给我们发一把MAC-10,当然还可以让他给我们发一把吹风机,他都会理解,这个引用符也是如此,a=2,那么我们给他取一个别名 c,让&c=a,这样我们在使用c的时候,a的值也就会跟着变化啦(注意这个操作应该在函数传递或者是定义的时候使用)

#includeint main()
{
	int a = 2;
	int& c = a;
	c = 1;
	std::cout<< c<<" "<< a;//结果是1 1
	//int a=2,c;
	//&c=a;这种方法是错误的,应该在c定义时就让&c=a
}

写交换函数时,

#includevoid swap(int& x, int& y)
{
	int t;
	t = x;
	x = y;
	y = t;
	return;
}
int main()
{
	int a, b;
	std::cin >>a >>b;
	std::cout<< "the value "<< a<< "and"<< b<< std::endl;
	swap(a, b);
	std::cout<< "the value "<< a<< "and"<< b<< std::endl;
}
//2 3
//the value 2and3
//the value 3and2

指针作为函数参数

使用指针具体来说之前我们都是直接的传入a和b的值进而来解决问题,利用指针就是“曲线救国”,把a和b的地址作为函数参数传进去,因为每个变量的地址在我们的代码里面是唯一的,因此我们可以从地址找到变量,进而改变他们的值。代码如下:


关于什么时候用&和指针或者值传递

说说我自己的理解,因为在函数传参的过程中,&方式我们可以理解为直接将它本身丢过去,并不会像值传递那样复制出来另一份,因此这种方式本身的速度更快,因为它不进行复制,可以减轻复制大型对象所产生的时间,因此在比如函数功能是遍历一个数组时用&方式或者是指针的方式更好;同时如果函数内我们希望对传入的对象进行数据上的操作,并能够直接辐射到主函数中,使用指针和&方法更好。

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

网页名称:C++引用符&和指针*在函数中的使用方法和区别-创新互联
标题链接:https://www.cdcxhl.com/article30/copspo.html

成都网站建设公司_创新互联,为您提供搜索引擎优化做网站企业网站制作用户体验网页设计公司企业建站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

微信小程序开发