鱼C论坛

 找回密码
 立即注册
查看: 1391|回复: 4

求解···

[复制链接]
发表于 2014-11-23 14:09:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
怎么实现把函数shuru的xy值改变呢
#include <stdio.h>
void shuru(int x,int y);
void main()
{
int a[3][4]={{1,2,3,4},{5,6,7,8,},{9,10,11,12}};
int x,y;
x=y=0;
shuru(x,y);
printf("数值为:%d",x);
}
void shuru(int x,int y)
{
int i,xy[2]={0};
for(i=0;i<2;)
{
  printf("i=");
  scanf("%d",&xy[0]);
  if(xy[0]>2)
  {
   i=0;
   printf("输入错误未知位置%d\n",xy[0]);
  }else
  {
   printf("j=");
   scanf("%d",&xy[1]);
   if(xy[1]>3)
   {
    i=0;
    printf("输入错误未知位置%d,%d\n",xy[0],xy[1]);
   }
   else
   {
    x=xy[1];
    y=xy[2];
    i=4;
   }
  }
  
}
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-23 14:36:31 | 显示全部楼层
void shuru(int x,int y);
这个函数的参数是值传递,就是传递进去的仅仅是X,Y的副本。在函数内部怎样都不可能改变(这里指在C语言标准内的常规手段)x,y的值(只可能改变x,y副本的值 )
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-23 14:50:32 | 显示全部楼层
仰望天上的光 发表于 2014-11-23 14:36
void shuru(int x,int y);
这个函数的参数是值传递,就是传递进去的仅仅是X,Y的副本。在函数内部怎样都不 ...

难道xy不能作为一个存储值的变量吗非得全局
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-23 15:33:01 | 显示全部楼层
岁月 发表于 2014-11-23 14:50
难道xy不能作为一个存储值的变量吗非得全局

作为全局是一种方式,另一种更好的方式是函数原型由void shuru(int x,int y);
改为void shuru(int* px,int* py);即传递x和y的指针进函数,函数内部就有可能修改x和y的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-23 17:40:55 | 显示全部楼层
仰望天上的光 发表于 2014-11-23 15:33
作为全局是一种方式,另一种更好的方式是函数原型由void shuru(int x,int y);
改为void shuru(int* px,i ...

恩好的谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 10:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表