| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3999 人关注过本帖
标题:关于引用型参数
只看楼主 加入收藏
jarryjsq
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:45
专家分:124
注 册:2011-7-11
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
关于引用型参数
c中编程经常遇到引用型参数这已概念,这个引用型参数究竟是什么意思呢??请各位大侠帮忙解释下;谢谢。。。
程序举例

# include<stdio.h>
# define  maxsize 20
//# include<string.h>
//#include<stdlib.h>
typedef struct{
int data[maxsize];
//    int data[20];
int len;
}sqlist;

void inistlist(sqlist &a)
{
a.len=0;
}
int getlen(sqlist a)
{
return a.len;
}

int getelem(sqlist a,int i)
{
return a.data[i-1];
}

int locate(sqlist a,int x)
{
int i=0;
while(a.data[i]!=x)
i++;
if(i>(a.len-1))
return 0;
else
return i+1;
}

int inselem(sqlist &a,int x,int i)//注意&有与无的区别
{
int j;
if(i<1 || i>a.len+1)
return 0;
for(j=a.len;j>=i;j--)
a.data[j]=a.data[j-1];
a.data[i-1]=x;
a.len++;
return 1;
}

int delelem(sqlist &a,int i)
{
int j;
if(i<1||i>a.len+1)
return 0;
for(j=i;j<a.len;j++)
a.data[i-1]=a.data[i];
a.len--;
return 1;
}

void displist(sqlist a)
{
int i;
for(i=0;i<a.len;i++)
printf("%3d",a.data[i]);
printf("\n");

}

void elemscanf(sqlist &a)
{
    int i;
    int j;
printf("请输入元素个数:\n");
//printf("this\n ");
scanf("%d",&i);
//printf("i=%d\n",i);
for(j=0;j<i;j++)
{
    printf("请输入第%d个元素;\n",j+1);   
    scanf("%d",&a.data[j]);
    a.len++;
}
}



void andset(sqlist &A,sqlist &B,sqlist c)

void main()
{
sqlist a;
int i=0,j=0,k=0;
int b=0,c=0;
inistlist(a);
elemscanf(a);
printf("表长为:%d\n",getlen(a));
displist(a);
j=getlen(a);
printf("表长为:%d\n",j);
printf("请选择要输出数的号:\n");
scanf("%d",&j);
i=getelem(a,j);
printf("第%d个元素为:%d\n",j,i);
k=locate(a,3);
printf("=3的元素是第%d个 \n",k);
printf("请输入要插入元素及其序号:\n");
scanf("%d %d",&b,&c);
//printf("i=%d,j=%d",b,c);
inselem(a,b,c);
//printf("k=%d",k);
displist(a);
printf("要删除的序号:\n");
scanf("%d",&i);
//printf("%d",i);
//j=delelem(a,i);
printf("%d",j);
displist(a);
}

int inselem(sqlist &a,int x,int i)这个函数如果我把&打印出来就是乱码。。。
请帮忙解释下。
搜索更多相关主题的帖子: 编程 include return 
2011-07-16 22:47
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:20 
瞎说 C里面哪有引用  那是C++里面的东西  其实它还是利用指针实现的函数参数的

双向传递  只不过他用&为你屏蔽掉了指针  给你的感觉好像是双向传递 但是其实

函数的调用永远都是单向的值传递 因为它要借助栈来完成 你所有的操作 都是在操作实参的副本

                                         
===========深入<----------------->浅出============
2011-07-17 10:31
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:0 
老杨解释的很透彻,学到了。

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-07-17 11:38
快速回复:关于引用型参数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024119 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved