指针引用传递的是什么呀
#include<stdio.h>
#include<iostream>
#include<malloc.h>
#define Maxsize 50
typedef char EleType;
typedef struct
{
int length;
EleType data[Maxsize];
}Sqlist;
extern void InitList(Sqlist *&L);
extern void ListInsert(Sqlist *&L);
extern int ListEmpty(Sqlist *L);
extern void display(Sqlist *&L);
void main()
{
Sqlist *L;
InitList(L);
ListInsert(L);
printf("%c",L->data[0]);
system("pause");
}
#include <stdio.h>
#include <malloc.h>
#define Maxsize 50
typedef char EleType;
typedef struct
{
EleType data[Maxsize];
int length;
} Sqlist;
void InitList(Sqlist *&L)
{
L=(Sqlist *)malloc(sizeof(Sqlist));
L->length=0;
}
void ListInsert(Sqlist *&L)
{
int j,i;
EleType e;
printf("请选择要插入的位置和数据:");
scanf("%d %c",&i,&e);
if(i<1 || i>L->length+1)
{
return;
}
i--;
for(j=L->length;j>i;j--)
{
L->data[j]=L->data[j-1];
}
L->data[i]=e;
L->length++;
}
int ListEmpty(Sqlist *L)
{
if(L->length==0)
return 0;
else
return 1;
}
void display(Sqlist *&L)
{
int i;
if(ListEmpty(L)==0)
return;
else
for(i=0;i<L->length;i++)
{
printf("第%d个元素为%c\n",i+1,L->data[i]);
}
}
运行这段程序,为什么在访问通过引用初始化插入数据后的实参,访问不到数据
指针引用就是让调用者和被调用者共享同一个变量,因此你函数里initlist让L指向一个地址,那么主程序也能跟着改变
你下面的display其实并不修改指针,所以用不到引用。
开始是把函数的定义与函数的声明放在了不同的文件,函数的声明与main函数放到了一个文件。后来发现把它们放在同一个文件就能访问了,不知道原因谁能解释一下
不知道你这个问题是否已经解决, 如果还没有解决的话: