赞
踩
1.如果对于一个顺序表在初始化的时候不给他赋值初始化,他将会变得一发不可收拾.jpg
现在声明一个线性表(顺序表),并且初始化其长度,但并未赋初值,会有什么后果呢?
#include<stdio.h> #define MaxSize 10 typedef struct { int data[MaxSize]; int length;//表长 }SqList; void InitList(SqList& L) { /* //赋初值,可省略,但会产生"脏数据" for(int i=0;i<MaxSize;i++) L.data[i] = 0; */ L.length = 0;//空表 } int main() { SqList L; InitList(L); //不严谨访问元素的写法 for (int i = 0; i < MaxSize; i++) { printf("data[%d]=%d\n", i, L.data[i]); } return 0; }
运行结果如下:(脏数据产生了)
2.正确做法是在初始化顺序表的同时,依次给它赋初值,则不会产生“脏数据”了。
#include<stdio.h> #define MaxSize 10 typedef struct { int data[MaxSize]; int length;//表长 }SqList; void InitList(SqList& L) { //赋初值,可省略,但会产生"脏数据" for(int i=0;i<MaxSize;i++) L.data[i] = 0; L.length = 0;//空表 } int main() { SqList L; InitList(L); //不严谨访问元素的写法 for (int i = 0; i < MaxSize; i++) { printf("data[%d]=%d\n", i, L.data[i]); } return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。