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;
------解决方案--------------------
这两句需要写在函数体里面
------解决方案--------------------
这两句是对指针的赋值语句,必须在函数体内才能运行。
变量定义可以在函数体外面,作为全局变量定义。
------解决方案--------------------
++
------解决方案--------------------
是这样的
------解决方案--------------------
#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 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);
#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=&a;
j=&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);