C 语言 指针,该怎么处理

C 语言 指针
#include<stdio.h>
int a=1,b=2;
int *i,*j;
i=&a;
j=&b;
void change(int *i,int *j)
{ int t;
t=*i;
*i=*j;
*j=t;
}
int main()
{
change(i,j);
printf("%d\n",a);
printf("%d\n",b);
return 0;
}
为什么编译不过去

------解决方案--------------------
i=&a;
j=&b;
------解决方案--------------------
引用:
i=&amp;a;
j=&amp;b;
这两句需要写在函数体里面
------解决方案--------------------
i=&a;
j=&b;


这两句是对指针的赋值语句,必须在函数体内才能运行。
变量定义可以在函数体外面,作为全局变量定义。
------解决方案--------------------
引用:
引用:
i=&amp;amp;a;
j=&amp;amp;b;这两句需要写在函数体里面

++
------解决方案--------------------
引用:
C/C++ code?12i=&amp;a;j=&amp;b;

这两句是对指针的赋值语句,必须在函数体内才能运行。
变量定义可以在函数体外面,作为全局变量定义。

是这样的

------解决方案--------------------
#include<stdio.h>

int a=1, b=2;

int *i = &a;
int *j = &b;

void change(int *i, int *j)
{
int t;
t=*i;
*i=*j;
*j=t;
}

int main()
{
change(i,j);
printf("%d\n",a);
printf("%d\n",b);

return 0;
}
------解决方案--------------------
或者
#include<stdio.h>
int a=1, b=2;
int *i, *j;

void change(int *i, int *j)
{
int t;
t=*i;
*i=*j;
*j=t;
}

int main()
{
i = &a;
j = &b;
change(i,j);
printf("%d\n",a);
printf("%d\n",b);

return 0;
}



int *i = &a; C语言允许定义变量的同时进行初始化---第一种方案
int *i, *j;定义全局变量,在main函数中进行赋值,因为i = &a;属于C语句,只能在函数体内执行
------解决方案--------------------
#include<stdio.h>

void change(int *i,int *j)
{ int t;
t=*i;
*i=*j;
*j=t;
}
int main()
{
int a=1,b=2;
    int *i,*j;
    i=&a;
    j=&b;
change(i,j);
printf("%d\n",a);
printf("%d\n",b);
return 0;
}

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


#include<stdio.h>
void change1(int *i,int *j)
{
int t;
t=*i;
*i=*j;
*j=t;
}
void change2(int *i,int *j)
{
int *t;
t=i;
i=j;
j=t;
printf("%d  %d\n",*i,*j);
}
int main()
{
int a=1,b=2;
int *i,*j;
i=&a;
j=&b;
change1(i,j);
printf("%d  %d\n",a,b);

a=1;
b=2;
i=&a;
j=&b;
change2(i,j);