1. 关于c语言交换两个数(有关指针)
在C语言中,通过函数参数传递,进行两个数的交换,必须采用传递指针的方式,同时,在函数中,一定要对两个指针中的数据内容进行交换才能达到交换实参地址中数据的目的。
如:
//正确的交换函数
voidswap1(int*p1,int*p2)
{
intp;
p=*p1;//通过*引用地址中的数据,进行交换
*p1=*p2;
*p2=p;
}
//错误的交换函数
voidswap2(int*p1,int*p2)
{
int*p;
p=p1;//这里进行改变的是形参的值,而形参只是实参的一个副本,形参本身的变化,是不能改变实参的值的!!
p1=p2;
p2=p;
}
PS:要正确认识C语言中的实参与形参,形参在使用中只是实参的副本,若形参是指针,我们可以通过形参改变实参地址中的内容,但无法改变实参本身的值!
2. c语言用指针交换两个数的值
假设pa原本指向内存单元a,
pb原本指向内存单元b,
自然而然,交换之后pa指向内存单元b,
pb指向内存单元a,
那么pa对应的值就变成了b原来的值,
pb对应的值也就变成了a原来的值,
3. c语言指针交换两个变量的值
swap函数,看到temp=*x可知入参是*x和*y,是两个变量的地址
scanf参数是变量的地址,需要&取地址
p_a表示a的地址指针,因此 &a
输出就是printf
4. 5、使用C语言编写一个函数,用于交换两个变量的值(地址传递)。
不知道你要交换的两个变量类型,所以这里以整型数据交换为例,以下swap函数实现了交换两个整型变量值的功能:
#include<stdio.h>
//交换给定指针指向整型变量的值。
//参数:
// a->指向第一个变量的指针
// b->指向第二个变量的指针
voidswap(int*a,int*b);
intmain(intargc,intargv)
{
inta=3,b=5;
printf_s("交换前:a=%d,b=%d ",a,b);
swap(&a,&b);
printf_s("交换后:a=%d,b=%d ",a,b);
return0;
}
//交换给定指针指向整型变量的值。
//参数:
// a->指向第一个变量的指针
// b->指向第二个变量的指针
voidswap(int*a,int*b)
{
//声明一个临时变量,保存第一个指针指向变量
//的值。
//其中*a是取出a指针指向变量的值
inttemp=*a;
//将b指针指向的值赋值给a指针指向变量
(*a)=(*b);
//将临时变量temp中保存的a指针指向变量的值赋值给
//b指针指向的变量。
(*b)=temp;
}
以上代码运行结果如下:
5. 定义两个变量ab如何用c语言编程使两个变量的值能相互交换
C语言中交换两个变量需要用到一个临时变量temp。
具体按照下面给出步骤操作:
#include
<stdio.h>
void
main
()
{int
a=1,b=2,temp;temp=a;a=b;
b=temp;
printf("a=%d,b=%d\n",a,b);}
(5)c语言交换2个变量的值指针扩展阅读:
(1)变量名在VB中是不区分大小写的(如ABC、aBc、abc等都是一样的)。C语言中区分大小写。不同的语言有不同的规则。
(2)定义和使用变量时,通常要把变量名定义为容易使用阅读和能够描述所含数据用处的名称,而不要使用一些难懂的缩写如A或B2等。例如:假定正在为水果铺编一个销售苹果的软件。我们需要两个变量来存储苹果的价格和销量。
此时,可以定义两个名为Apple_Price和Apple_Sold的变量。每次运行程序时,用户就这两个变量提供具体值,这样看起来就非常直观。具体方法是:通过用一个或多个单词组成有意义的变量名来使变量意义明确。例如,变量名SalesTaxRate就比Tax或Rate的意义明确得多。
(3)根据需要混合使用大小写字母和数字。一个合理协议是,变量中每个单词的第一个字母大写,例如:DateOfBirth。
(4)另一个合理协议是,每个变量名以两个或三个字符缩写开始,这些字符缩写对应于变量要存储数据的数据类型。例如,使用strName来说明Name变量保存字符串型数据。
参考资料来源:搜狗网络-C语言
6. c语言 编一程序 交换两个变量的值(用指针做函数参数)
#include <stdio.h>
void Swap(int a,int b)
{
int tmp = a;
a = b;
b = tmp;
printf("a=%d,b=%d ",a,b);
}
int main()
{
int a = 5;
int b = 10;
printf("a=%d,b=%d ",a,b);
Swap(a,b);
printf("a=%d,b=%d ",a,b);
return 0;
}
(6)c语言交换2个变量的值指针扩展阅读:
形参和实参的特点
1、形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。
2、实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值。
3、实参和形参在数量上,类型上、顺序上应严格一致,否则就会发生类型不匹配的错误。
4、在一般传值调用的机制中只能把实参传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参值发生改变,而实参中的值不会变化。而在引用调用的机制当中是将实参引用的地址传递给了形参,所以任何发生在形参上的改变实际上也发生在实参变量上。
网络-形参
7. C语言指针使用函数交换两个变量的值
这个地方会出现不好理解的东西。
调用函数的时候,你放入了int
a
int
b
但是这其实不是你的main函数中的a
b只是相当于他们的副本,也就是复制了一个a
和b
传入函数
所以你改变的只是传入的副本
也就是复制的副本a
b所以在main函数中打印的ab不会出现变化
依然是a=3,b=6
现在回答第二个问题,怎么会让ab的值变化:传入指针,也就是在main函数中使用a
b的指针,然后吧指针传入到函数里面
这个时候ab就会真正的发生变化,因为指针指向的是ab的物理地址,也就是真正的ab,不是副本,这个时候就会改变ab的值。想要理解,可以去网络传值参数和引用参数。纯手打,望采纳