瑞星卡卡安全论坛技术交流区系统软件 【求助】C语言指针疑问

1   1  /  1  页   跳转

【求助】C语言指针疑问

【求助】C语言指针疑问

#include "stdio.h"
swap(int *pt1,int *pt2)

{int temp;
   
    temp=pt1;
    *pt1=*pt2;
    *pt2=temp;
/*为什么不可以写成:
int *temp;
   
    *temp=*pt1;
    *pt1=*pt2;
    *pt2=*temp;

改这样之后,运行,会提示出错。

假如说指针在定义以前不能被使用,如果说在定义指针时,定义为:*temp=NULL,再使用可以?

*/
   
    }
exchange(int *q1,int *q2,int *q3)

{
    if(*q1<*q2)swap(q1,q2);
    if(*q1<*q3)swap(q1,q3);
    if(*q2<*q3)swap(q2,q3);   
   
   
    }

main()
{
    int a,b,c,*p1,*p2,*p3;
    scanf("%d,%d,%d",&a,&b,&c);
    p1=&a,p2=&b,p3=&c;
    exchange(p1,p2,p3);
    printf("\n%d,%d,%d\n",a,b,c);
   
}

[用户系统信息]Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322)
最后编辑2008-02-28 10:22:39.513000000
分享到:
gototop
 

引用:
【andylin02的贴子】/*为什么不可以写成:
int *temp;
这里temp 没有指向一个int变量。所以,*temp没有存储空间.因此,这个时候对*temp 赋值是很危险的。
………………



明白一点点了..

最近比较忙,没继续研究C了...

让你们久等了.
gototop
 

引用:
【咨询三的贴子】检测到


………………


一般重启电脑就可以删除了\

一般出现这情况是中了下载者病毒,需要扫描卡卡日志,再帖到日志求助区
gototop
 

引用:
【天下奇才的贴子】temp作为一个指针,并为指向一明确的存储空间。直接引用它是相当危险的(如果编译器处理不好的话,可能会出现其他问题)。

其实交换两个数,有另外的方法,我觉得比较方便,顺便介绍给你

int f(int *a,int *b)
{
*a=(*a)^(*b);
*b=(*a)^(*b);
*a=(*a)^(*b);
}

这样不需要额外的存储空间,而且速度比较快。
………………



谢谢了,虽然我现在还看不懂,但是还是先谢谢了.
gototop
 
1   1  /  1  页   跳转
页面顶部
Powered by Discuz!NT