博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
高级数据表示
阅读量:5979 次
发布时间:2019-06-20

本文共 2067 字,大约阅读时间需要 6 分钟。

抽象数据类型(ADT)

链表

1 #include 
2 #include
3 #include
4 #define TSIZE 45 5 6 struct film 7 { 8 char title[TSIZE]; 9 int rating;10 struct film * next;11 };12 13 int main(void)14 {15 struct film * head = NULL;16 struct film * prev, * current;17 char input[TSIZE];18 19 puts("Enter first movie title: ");20 while(NULL != gets(input) && '\0' != input[0])21 {22 current = (struct film *)malloc(sizeof(struct film));23 if(NULL == head)24 head = current;25 else26 prev->next = current;27 current->next = NULL;28 strncpy(current->title, input, TSIZE);29 current->title[TSIZE - 1] = '\0';30 puts("Enter your rating <0-10>: ");31 scanf("%d", &current->rating);32 while('\n' != getchar())33 continue;34 puts("Enter next movie title (empty line to stop): ");35 prev = current;36 }37 if(NULL == head)38 printf("No data entered. ");39 else40 printf("Here is the movie list: \n");41 current = head;42 while(NULL != current)43 {44 printf("Movie: %s Rating: %d\n", current->title, current->rating);45 current = current->next;46 }47 current = head;48 while(NULL != current)49 {50 free(current);51 current = current->next;52 }53 printf("Bye!\n");54 55 return 0;56 }

 

1 #include 
2 3 struct student 4 { 5 int id; 6 char name[32]; 7 }; 8 9 typedef struct student * Node;10 11 void modi(const Node * ps)12 {13 (*ps)->id = 2008;14 }15 16 int main(void)17 {18 struct student stu = {
20092192, "fwy"};19 struct student * ps = &stu;20 21 printf("%d\n", stu.id);22 modi(&ps);23 printf("%d\n", stu.id);24 }
[root@playstation basic]# ./test200921922008[root@playstation basic]#

 *ps被当做const,并不意味着*ps指向的数据是const,这是因为上面的代码并没有改变*ps,它只是改变了*ps所指向的数据。也就是说,你不要指望const能够捕获到意外修改数据的程序错误。

 

转载于:https://www.cnblogs.com/itpoorman/p/4002282.html

你可能感兴趣的文章
SurfControl人工智能新突破 领跑反垃圾邮件
查看>>
一个动态ACL的案例
查看>>
openstack 之 windows server 2008镜像制作
查看>>
VI快捷键攻略
查看>>
Win server 2012 R2 文件服务器--(三)配额限制
查看>>
卓越质量管理成就创新高地 中关村软件园再出发
查看>>
linux rsync 远程同步
查看>>
httpd的manual列目录漏洞
查看>>
myeclipse2014破解过程
查看>>
漫谈几种反编译对抗技术
查看>>
Timer 和 TimerTask 例子
查看>>
Spring BOOT 集成 RabbitMq 实战操作(一)
查看>>
安装python3.5注意事项及相关命令
查看>>
进程通信之无名信号量
查看>>
并发串行调用接口
查看>>
FileStream大文件复制
查看>>
Hibernate学习之SessionFactory的opensession 和 getCu...
查看>>
web网站服务(二)
查看>>
【第一期】网站打开错误问题解决方法集合
查看>>
j2ee开发防范URL攻击是个重要话题
查看>>