过客2007 - 2007-12-24 11:21:00
#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)
person997 - 2007-12-25 13:36:00
你还是没明白什么是指针!
int *p = NULL;
int iArray[100] = {0};
.....
p = &iArray[20];
*p = 10;
_tprintf(_T("out : %d"), iArray[20]);
.....
=================================
out : 10
andylin02 - 2008-1-3 17:30:00
/*为什么不可以写成:
int *temp;
这里temp 没有指向一个int变量。所以,*temp没有存储空间.因此,这个时候对*temp 赋值是很危险的。
andylin02 - 2008-1-3 17:31:00
| 引用: |
【person997的贴子】你还是没明白什么是指针! 你还在捣二手电脑吗?
过客2007 - 2008-1-7 23:27:00 | 引用: | 【andylin02的贴子】/*为什么不可以写成: int *temp; 这里temp 没有指向一个int变量。所以,*temp没有存储空间.因此,这个时候对*temp 赋值是很危险的。 ……………… |
明白一点点了.. 最近比较忙,没继续研究C了... 让你们久等了.
大屁虫 - 2008-1-12 11:03:00 2楼正解. 好比是随便取一个名字Rack,但是要你把钱交给Rack,叫他再把钱存到银行,你愿意么?
咨询三 - 2008-1-14 10:24:00 检测到 木马程序 TROJAN-PSW.WIN32.ONLINEGAMES.NJY
文件: C:\DOCUME-1\ADMINI-1\LOCALS-1\TEMP\TMPDC.TMP
操作
文件 包含木马程序 'TROJAN-PSW.WIN32.ONLINEGAMES.NJY ' 但不能清除
咨询三 - 2008-1-14 10:25:00 请大侠给予解决,谢谢/急!!!
过客2007 - 2008-1-14 14:29:00 一般重启电脑就可以删除了\ 一般出现这情况是中了下载者病毒,需要扫描卡卡日志,再帖到日志求助区
尚天的人 - 2008-2-26 15:31:00 该用户帖子内容已被屏蔽
天下奇才 - 2008-2-27 14:43:00 temp作为一个指针,并为指向一明确的存储空间。直接引用它是相当危险的(如果编译器处理不好的话,可能会出现其他问题)。
其实交换两个数,有另外的方法,我觉得比较方便,顺便介绍给你
int f(int *a,int *b) { *a=(*a)^(*b); *b=(*a)^(*b); *a=(*a)^(*b); }
这样不需要额外的存储空间,而且速度比较快。
过客2007 - 2008-2-28 10:22:00 | 引用: | 【天下奇才的贴子】temp作为一个指针,并为指向一明确的存储空间。直接引用它是相当危险的(如果编译器处理不好的话,可能会出现其他问题)。
其实交换两个数,有另外的方法,我觉得比较方便,顺便介绍给你
int f(int *a,int *b) { *a=(*a)^(*b); *b=(*a)^(*b); *a=(*a)^(*b); }
这样不需要额外的存储空间,而且速度比较快。 ……………… |
谢谢了,虽然我现在还看不懂,但是还是先谢谢了.
1
© 2000 - 2025 Rising Corp. Ltd.
|