五金制品交流交易网

这个简单c程序怎样改能互换a,b的值。这个换不了啊。(不用指针)

发布时间:2018-07-26 08:43

a=b就是把b的地址赋给a
*a=*b就是把b的内存地址对应的值给a

回复:

第三种是错误的写法,t是指针,而*x是指针x所指向的变量的值,不是地址,t=*x是错误语句,*y=t也是错误的!

回复:

一楼的程序是对的,
你要明白原理
你那样做,只是交换了pa,pb的地址,a b实际没有交换
printf("a=%d b=%d",pa,pb);
要是这样,就是交换了

回复:

打个比方,假设 a 的地址为 2000,b 的地址为 2100。。然后将 2000 和 2100 作为参数传入函数。。 星号是取值符号。。*p1,也就是地址为 2000 的内存所存储的值。。 temp=*p1; *p1=*p2; *p2=temp; 这个交换,就是把地址为 2000 和 2100 的内存所...

回复:

首先要捋顺一下,先看第一段程序。这段程序的目的就是为了将两个变量的数值进行交换。此时要明白指针的使用方法,这里的交换函数是void swap(int &x, ...

回复:

程序本身就有问题,按照你写的程序的意思,应该是要交换两个程序的值,而按照C语言的实现方式必须要用到指针不可,程序可以按照以下的方式实现,两个数组的长度必须相同,否则会出现数组下标越界的错误 void Swap(int a[],int b[],int n)//此处...

回复:

简单来说,p1和p2交换的是a和b的地址,原来p1是指向a的,p2指向b的,交换地址后p1指向b,p2指向b。所以输出的是*p1==b;*p2==a。

回复:

应该不会啊,你把两个变量的值交换了,但是 指针的指向并没有发生变化啊,输出来应该是交换之后的值

回复:

第三种是错误的写法,t是指针,而*x是指针x所指向的变量的值,不是地址,t=*x是错误语句,*y=t也是错误的!

回复:

一楼的程序是对的, 你要明白原理 你那样做,只是交换了pa,pb的地址,a b实际没有交换 printf("a=%d b=%d",pa,pb); 要是这样,就是交换了

回复:

#include int main(void) { int a=1,b=2,t; int *pa,*pb; pa=&a; pb=&b; t=a;a=b;b=t; printf("a:%d,b:%d,pa:%d,pb:%d",a,b,*pa,*pb); getchar(); return 0; }这里有很多c 语言的学习小程序你可以下载 不过一个要等30秒 http://www.yunfile.com/...

回复:

a=b就是把b的地址赋给a *a=*b就是把b的内存地址对应的值给a

回复:

排序,特别是字符串排序或结构体数组排序。交换两个指针与交换一个整型变量一样简单,而要交换两个字符串或结构体却要较大的空间开销和时间开销……

上一篇:自己做的水钟可以计时几分钟,它的误差是我觉得我产生误差的原因是。 下一篇:不吹不黑,贴吧史上有人能超越乡长吗

返回主页:五金制品

本文网址:http://www.is2k.com/view-389472-1.html
    信息删除