①原理
利用指针通过形参改变实参 ,
输入指针类型的形参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 。 */
- 仓颉|华为仓颉语言是不是中文不重要,思维才是我们想要的
- 小米科技|iOS16 重大功能改变曝光丨印度开始生产iPhone13设备机型
- iqoo neo6|Java:Java 编程语言有什么好处?
- 5G|埃隆·马斯克对推特进行重大改造!提议Twitter Blue 进行改变
- 机器|C语言-删除字符串空格
- ios16|大神爆料:iOS16没有大改变,别期望太高!
- Java|Java:Java 编程语言有什么好处?
- 电子商务|iPhone X对比iPhone 13:4年时间改变了什么?
- c语言|C语言-小于等于lim的素数
- 本文转自:中国新闻周刊文/吉安冰有的改变发生时|淘宝能改名了,我要重新做人了