&_exitopen是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/05/28 07:18:03
在TC中,程序段
main()
{
int n,i,j,*a,*b;
*a=&a;*b=&b;
scanf("%d",&n);
for (i=1;i<=n;++i) {scanf("%d,%d",a,b);++a;++b;}
for (j=n;j>=0;--j) printf("%d,%d\n",*a-j+1,*b-j+1);
}
对a进行跟踪出现以下结果 “&_exitopen”请问这是什么意思?
还有这个程序为什么得不到想要的结果。(读入数组,反序输出)

这应该是让你程序改错吧……
先说*a=&a;*b=&b;
a是整型指针变量,而&a是变量a的引用。所以*a=&a的本意是在地址a处存放变量a的地址(有点儿绕)。但是这一句是很危险的,因为在声明指针变量a后,并没有为其分配空间,也没有初始化a的值。也就是说,这一句会在一个未知的地方存放一个未知的整数。
说实话,代码写得有点乱,正确代码参照 高金山
只是程序中最后一句
for (j=n;j>=0;--j) printf("%d,%d\n",*(a-j+1),*(b-j+1));
应该为
for (j=n;j>0;j--) printf("%d,%d\n",*(a-j),*(b-j));

乱七八糟的一段代码!

a和b是指针,指针哪里?没有给他们分配内存空间,就想往里面填东西
不exception才怪呢
修改成:

main()
{
int n,i,j,a[100],b[100];

scanf("%d",&n);
for (i=1;i<=n;++i) {scanf("%d,%d",a,b);++a;++b;}
for (j=n;j>=0;--j) printf("%d,%d\n",*(a-j+1),*(b-j+1));
}

*a=&a;*b=&b;
指针所在的地址赋给本指针?大侠,你这么做不对吧??混顿了吧!

如果不"&_exitopen"那就奇怪了!
*a=&a;*b=&b; 我晕,有必要添个*上去吗?地址赋指针变量...