|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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后;
发现结果满足预期。按道理来说,两者虽有不同,也只是体现再程序的数值上。怎么会有这样的效果?
|
|