准备转C编程问个很菜的问题:我的参数怎么传不过去呢

szywelcome 2004-12-27 10:17:34
# include "stdio.h"
sub(int *s,int y);
main()
{
int a[]={1,2,3,4};
int x;
int i;
for(i=1;i<4;i++)
{
sub(a,x);
printf("%d",x);
printf("\n");
}
}
sub(int *s,int y)
{
// int *s,y;
{
static int t=3;
y=s[t];t--;
}
}

打印出来为什么不是4.3.2.1呢
...全文
98 点赞 收藏 11
写回复
11 条回复
agaric 2004年12月27日
对,在C语言里 要实现数据双向传递 需要用指针来操作地址

在C++里则可以用引用来解决
回复 点赞
xuelong_zl 2004年12月27日
mark
回复 点赞
xuelong_zl 2004年12月27日
mark
回复 点赞
szywelcome 2004年12月27日
谢谢大家,等下结贴给分你们
回复 点赞
qiqiyeye 2004年12月27日
帮你改好了
# include "stdio.h"
void sub(int *s,int *y);
void main()
{
int a[]={1,2,3,4};
int x;
int i;
for(i=0;i<4;i++)
{
sub(a,&x);
printf("%d",x);
printf("\n");
}
}
void sub(int *s,int *y)
{
{
static int t=3;
*y=s[t];t--;
}
}
回复 点赞
winstonch 2004年12月27日
# include "stdio.h"
sub(int *s,int y);
main()
{
int a[]={1,2,3,4};
int x;
int i;
for(i=1;i<4;i++)
{
x = sub(a);
printf("%d",x);
printf("\n");
}
}
int sub(int *s)
{
// int *s,y;
{
static int t=3;
y=s[t];t--;
}
return y;
}
回复 点赞
piaozi2003 2004年12月27日
# include "stdio.h"

void sub(int *s,int *y);

main()
{
int a[]={1,2,3,4};
int x;
int i;
for(i=0;i<4;i++)
{
sub(a,&x);
printf("%d",x);
printf("\n");
}
}
void sub(int *s,int *y)
{
static int t=3;
*y=s[t];t--;
}
回复 点赞
b46 2004年12月27日
#include<iostream>
#include<conio.h>
using namespace std;
sub(int *s,int *y);
int main()
{
int a[]={1,2,3,4};
int x=0;
int i;
for(i=0;i<4;i++)
{
sub(a,&x);
cout<<x<<endl;
}
getch();
return 0;
}
sub(int *s,int* y)
{


static int t=3;
*y=s[t];
t--;
return *y;

}
回复 点赞
winstonch 2004年12月27日
参数传递有问题,你这是一个值传递,用zhwb36() 的办法可以,这样的问题也可以通过sub的返回值来做
回复 点赞
szywelcome 2004年12月27日
按你的改过来也不行哦
回复 点赞
zhwb36 2004年12月27日
x->y只是传递一个副本,修改y并不会影响x,要传指针

sub(int* s, int* y)

sub(a, &x)
回复 点赞
发动态
发帖子
C语言
创建于2007-09-28

3.2w+

社区成员

24.0w+

社区内容

C语言相关问题讨论
社区公告
暂无公告