数据结构问题C语言问题

seq为结构变量
SPL为结构指针
问&seq为多少
SPL=&seq,指针指向哪了?
下面是原始代码
#include<stdio.h>
#define MAXLEN 100
typedef int elementtype;
typedef struct
{
elementtype s[MAXLEN];
int len;
}SqList;
int insertsqlist(SqList *sql,int i,elementtype x)
{
int j;

if((i<1)||(i>sql->len+1))
{
printf("插入位置%d不合法\n",i);
return(0);
}
if(sql->len>=MAXLEN-1)
{
printf("表已满,无法插入");
return(0);
}
for(j=sql->len;j>=i;j--)
sql->s[j+1]=sql->s[j];
sql->s[j+1]=x;
(sql->len)++;
return(1);
}
void main()
{
SqList seq;
int p,q,r;
SqList z;
int i;
printf("请输入线性表的长度:");
scanf("%d",&r);
seq.len=r;
printf("请输入线性表的各元素值:\n");
for(i=1;i<=seq.len;i++)
{
scanf("%d",&seq.s[i]);
}
printf("请输入要插入的位置:");
scanf("%d",&p);
printf("请输入要插入的元素值:");
scanf("%d",&q);
z=seq;
insertsqlist(&seq,p,q);
printf("插入元素后的线性表:\n");
for(i=1;i<=seq.len;i++)
{
printf("%d ",seq.s[i]);
}
}

&seq表示seq的地址,SqList seq;由系统分配一个地址空间
SPL=&seq,SPL等于seq的地址,SPL指向的内容,就是seq变量的内容追问

SPL是不是指向分配地址空间的首地址?

追答

这里的seq就是一个!!结构体变量,包含的内容为elementtype的数组和长度,何来首地址?SPL就是seq的地址!这里的seq既不是数组又不是链表,就是一个结构体变量

追问

主要是这个地方看不大懂insertsqlist(&seq,p,q);

int insertsqlist(SqList *sql,int i,elementtype x)

第一个参数没弄明白。

追答

函数原型:int insertsqlist(SqList *sql,int i,elementtype x);第一个参数是SqList指针,而在main函数中seq是SqList变量,所以在调用时,传的参数是&seq,就是seq的地址

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答