
①原理
利用指针通过形参改变实参 ,
输入指针类型的形参x和y , 改变形参公式中指针所指的值*x和*y , 从而达成指针(地址)到值(变量)之间
重要环节都在定义函数中完成 , 调用函数只需确保实参为改变值的地址或指针即可 。
~
②定式
定义函数:fun(int*xint*y)
定义函数公式:*x , *y
int*是类型 , 实质是fun(xy) , 只不过x和y是指针类型变量 , 即形参必须是指针类型变量 。
由此可知
形参与形参公式的
搭配1
形参:int*xint*y(xy)
公式:*x*y
搭配2
形参:int*&xint*&y(&x&y)
公式:*&x*&y(xy)
~
③反例
#include< stdio.h>
【c语言|C语言-形参改变实参的原理】void fun(int *aint*b)
{int*t;
t=a;a=b;b=t;
/*定义函数表示交换 , 但并不具备改变实参的功能 。
因为搭配是形参a、b和形参公式a、b即输入地址改变地址 , 并不改变地址中的值 。
应该改为t=*a;*a=*b;*b=t*/
main()
{int x=1y=2*p=&x*q=&y;
fun(pq);printf(\"%d%d\"*p*q);
/*fun函数不具备改变实参功能 ,
输入p、q是指向x、y的指针交换p、q不影响*p和*q , 即结果还是1、2 。 */
fun(&x&y);printf(\"%d%d\\"*p*q);
/*fun函数不具备改变实参功能 ,
输入&x、&y是x、y的地址交换&x、&y不影响*p和*q , 即结果还是1、2 。 */
- 文艺辣评丨新东方直播:一场语言的行为艺术?
- c语言|负责任地推荐这3部手机,好看又配置强,用到2026年不成问题
- 华为Nova|从“根”进行突破!华为正式宣布,美媒:将彻底改变历史!
- 当疫情改变了人们的生活方式,我们又将如何拥抱舞台
- 墙纸|iOS 16 beta 2 新功能与改变汇总:全新墙纸颜色、LTE 网络备份等
- 苹果|行业改变者:苹果AR头显有望明年1月亮相
- 魅族|勇于拥抱变化!魅族为何能改变国产手机产业?黄章这个决定是契机
- 京东|Java:有哪些快速学习Java语言的技巧?
- |华为“新专利”确定,两台手机可屏幕共享,有望从根本上改变体验感觉
- 华为|从“根”进行突破!华为正式宣布,美媒:将彻底改变历史!
