关于引用型参数
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)这个函数如果我把&打印出来就是乱码。。。
请帮忙解释下。