马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#ifndef HEADER_H
#define HEADER_H
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define MAXSIZE 20
#include<stdio.h>
typedef int Status;
typedef int ElemType;
typedef struct{
ElemType data[MAXSIZE];
int length;
}SqList;
Status InitSqList(SqList *L)
{
L->length=0;
return OK;
}
Status CreateList(SqList *L)
{
int i=0,j=0;
while(i<MAXSIZE)
{
if(L->length==MAXSIZE)
{
printf("顺序表已满!");
return FALSE;
}
L->data[++i]=i;
//i++是先给第一个赋值,再自增。而++i是先自增再赋值
L->length++;
printf("%d\n",L->data[i]);
}
return TRUE;
}
Status GetElem(SqList *L,int index)
{
ElemType *e;
if(index <=L->length || index > L->length ||L->length == 0)
{
return ERROR;
}
*e=L->data[index-1];
return OK;
}
#endif
上面是定义的头文件
问题再我用红笔划出来那里。
当我将L->data[i++]=i时;
L->data[i]遍历后输出的结果很乱。不是按照递增
当我改为L->data[++i]=i后;
发现结果满足预期。按道理来说,两者虽有不同,也只是体现再程序的数值上。怎么会有这样的效果?
|