当前位置: 代码迷 >> C语言 >> [求助]用指针直接获取键盘输入
  详细解决方案

[求助]用指针直接获取键盘输入

热度:137   发布时间:2007-11-09 10:10:27.0
[求助]用指针直接获取键盘输入

#include <stdio.h>
int main(){
int *a,*b,t;
scanf("%d%d",a,b);
t=*a;
*a=*b;
*b=t;
printf("%d%d",*a,*b);
getch();
return 0;
}
运行后就出问题 要关闭 用的是devcpp 哪个高手帮忙解答一下

搜索更多相关的解决方案: 指针  键盘  获取  输入  

----------------解决方案--------------------------------------------------------
指针没有赋初值````很严重的初级错误```

没有赋值的时针可能随意指```如果指向系统重要资源````

你输入的内容将资源覆盖```那么``后果````回系统崩溃吗???

你试下先定义2个变量```再用2个指针指向这2个变量```

再输入``

[此贴子已经被作者于2007-11-9 10:13:59编辑过]


----------------解决方案--------------------------------------------------------
getch()好象不是在stdio.h里面的
你用system("pause"); 在include<stdlib.h>里面
----------------解决方案--------------------------------------------------------
#include <stdio.h>
int main(){
int *a=NULL,*b=NULL,t;
scanf("%d%d",a,b);
t=*a;
*a=*b;
*b=t;
printf("%d%d",*a,*b);
getch();
return 0;
}
这样还是错了,一定要定义变量在把其地址给指针吗?
----------------解决方案--------------------------------------------------------
以下是引用joker39在2007-11-9 11:26:56的发言:
#include <stdio.h>
int main(){
int *a=NULL,*b=NULL,t;
scanf("%d%d",a,b);
t=*a;
*a=*b;
*b=t;
printf("%d%d",*a,*b);
getch();
return 0;
}
这样还是错了,一定要定义变量在把其地址给指针吗?

#include <stdio.h>

int main(void)
{
int a, b, t;
int * pa, * pb;
pa = &a;
pb = &b;
scanf("%d %d", pa, pb);
t = *pa;
*pa = *pb;
*pb = t;
printf("%d %d", *pa, *pb);
getchar();
return 0;
}


int *a=NULL,*b=NULL。 /* 这完全是没有任何意义的 */
NULL 的值为 0x00000000 ,
指针地址初始化,如下:
int a;
int * p = &a; /* 初始化 */

----------------解决方案--------------------------------------------------------
或者事先声明两个指针,然后再对其初始化(用malloc或new),这样就可以少声明两个整型变量
int *pa=(int *)malloc(sizeof(int));
int *pb=(int *)malloc(sizeof(int));

[此贴子已经被作者于2007-11-9 12:26:51编辑过]


----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
回复:(chmlqw)getch()好象不是在stdio.h里面的你用...

在这里学到一个新东东哦,谢谢了。


----------------解决方案--------------------------------------------------------
回复:(静思)或者事先声明两个指针,然后再对其初始...

受教了哦,谢谢!!!


----------------解决方案--------------------------------------------------------

以下是引用静思在2007-11-9 12:25:14的发言:
或者事先声明两个指针,然后再对其初始化(用malloc或new),这样就可以少声明两个整型变量
int *pa=(int *)malloc(sizeof(int));
int *pb=(int *)malloc(sizeof(int));

要的就是这个 可是能不能说具体点 就是初始化成什么了?
devcpp有自动包含文件 用的时候不用再包含也可以


----------------解决方案--------------------------------------------------------