读书人

C 语言 指针,该怎么处理

发布时间: 2013-03-25 15:43:04 作者: rapoo

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=&a;
j=&b;
这两句需要写在函数体里面
[解决办法]
i=&a;
j=&b;


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

++
[解决办法]
引用:
C/C++ code?12i=&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);



return 0;
}
[解决办法]
#include<stdio.h>
int a=1,b=2;

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

[解决办法]
在函数体外只能定义变量或是初始化,不能有赋值语句。
[解决办法]

引用:
在函数体外只能定义变量或是初始化,不能有赋值语句。

好像是这样

读书人网 >C语言

热点推荐