标签:变量 cnblogs 3570980 jpg blog 函数参数 https com 指针
函数参数不仅可以是整型,浮点型,字符型等数据,还可以为指针变量,但**指针变量和整型等数据在函数调用时仍采取的是“值传递”方式,它们都遵循“单向传输”原则--即不能由形参传输至实参。(函数的声明和定义里参数一般为形参,而作为调用函数里的参数为实参)。
比如下面按从大到小输出2个数的例子。
点击查看代码
if(a<b)
swap(pointer1,pointer2);
printf("%d%d",*pointer1,*pointer2);
return 0;
swap(int *p1,int *p2)
{
p1=&b;
p2=&a;
}
实际返回值是未按从大到小顺序输出;
原因就是swap中形参p1和p2的地址改变在调用函数结束时就没了。
如果
点击查看代码
swap(int *p1,int *p2)
{
int t;
t=*pointer1;
*pointer1=*pointer2;
*pointer2=t;
}
或者
点击查看代码
swap(int *p1,int *p2)
{
pointer1=&b;
pointer2=&a;
}
都可以达到顺利按从大到小顺序输出数值。
![](/i/l/?n=24&i=blog/3570980/202412/3570980-20241205164921189-356612939.jpg)
![](/i/l/?n=24&i=blog/3570980/202412/3570980-20241205164938622-244175859.jpg)
![](/i/l/?n=24&i=blog/3570980/202412/3570980-20241205164945580-376314184.jpg)
![](/i/l/?n=24&i=blog/3570980/202412/3570980-20241205164952008-1932002968.jpg)
这是相关的效果图。
同时要注意![](/i/l/?n=24&i=blog/3570980/202412/3570980-20241205165130406-1212697910.jpg)
因为*tempt是指向存放在tempt中地址的变量,而实际上并未对tempt存放地址。![](/i/l/?n=24&i=blog/3570980/202412/3570980-20241205165433656-419401745.jpg)
标签:变量,
cnblogs,
3570980,
jpg,
blog,
函数参数,
https,
com,
指针
From: https://www.cnblogs.com/szyw/p/18588939