准备转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呢
...全文
133 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
agaric 2004-12-27
  • 打赏
  • 举报
回复
对,在C语言里 要实现数据双向传递 需要用指针来操作地址

在C++里则可以用引用来解决
xuelong_zl 2004-12-27
  • 打赏
  • 举报
回复
mark
xuelong_zl 2004-12-27
  • 打赏
  • 举报
回复
mark
szywelcome 2004-12-27
  • 打赏
  • 举报
回复
谢谢大家,等下结贴给分你们
alphakiller 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)

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧