今天刚学的指针,有道题目,是利用指针进行两个数字的交换。以前没学指针的时候也能进行转换。现在不知道,这样做,是符合用指针进行交换的题目意思吗?需要什么改进的吗?
代码如下:
#include<stdio.h>
void main()
{
int num1,num2,temp;
int *prt;
printf("请输入两个用于比较的数字:\n");
printf("\n数字一:\t");
scanf("%d",&num1);
printf("\n数字二:\t");
scanf("%d",&num2);
printf("\n交换前的顺序是,数字一:%d,数字二:%d\n",num1,num2);
prt=&num1;
temp=*prt;
num1=num2;
num2=temp;
printf("\n交换后的顺序是,数字一:%d,数字二:%d\n",num1,num2);
}
----------------解决方案--------------------------------------------------------
自己感觉不象是在用指针呢!!
----------------解决方案--------------------------------------------------------
这个是用指针进行转换,但实际上数字好象并没有真正的转换过来。但是哪个更合题目呢?
#include<stdio.h>
void main()
{
int num1,num2;
int *prt1,*prt2,*temp;
printf("请输入两个用于比较的数字:\n");
printf("\n数字一:\t");
scanf("%d",&num1);
printf("\n数字二:\t");
scanf("%d",&num2);
prt1=&num1;
prt2=&num2;
printf("\n交换前的顺序是,数字一:%d,数字二:%d\n",*prt1,*prt2);
temp=prt1;
prt1=prt2;
prt2=temp;
printf("\n交换后的顺序是,数字一:%d,数字二:%d\n",*prt1,*prt2);
}
----------------解决方案--------------------------------------------------------
呵呵,刚学指针的时候,我也是晕!我感觉指针最好的用处就是在数组上!数组的地方可是要用到指针的!所以一定要学好指针!
----------------解决方案--------------------------------------------------------
最好设计个函数保存起来,以后编程会经常用。
void Swap(int *pt1,int *pt2){
int temp;
temp=*pt1;
*pt1=*pt2;
*pt2=temp;
return ;
}
----------------解决方案--------------------------------------------------------
恩,不过现在指针在我的脑海里还是迷迷糊糊的。还要多做习题的。
----------------解决方案--------------------------------------------------------
交换指针指向的内容,而不是指针本身(只是一个地址),它不可以改变指向的内容.
----------------解决方案--------------------------------------------------------
我觉得要再定义一个指针变量!这样才有意义!要不然就好像没有用到指针的功能!
----------------解决方案--------------------------------------------------------
你的程序实际上就是把地址给交换了!注意*p只是一个数字而已!而p则是一个地址!
----------------解决方案--------------------------------------------------------
笨,用指针时把数组一换不就行了
----------------解决方案--------------------------------------------------------