| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1871 人关注过本帖
标题:关于顺序表的一个小问题
只看楼主 加入收藏
卜算子
Rank: 1
等 级:新手上路
帖 子:86
专家分:8
注 册:2016-9-18
结帖率:82.35%
收藏
已结贴  问题点数:20 回复次数:6 
关于顺序表的一个小问题
在看完数据结构以后我尝试把每个知识点的程序写一遍,后来发现了这个问题,在网上找了很久,发现貌似没人提出这个问题。。。也许是我很笨吧...伤心
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#define List_init_size 100
#define Listincrement 20
typedef int elemtype;
typedef int status;
typedef struct
{
     elemtype *elem;/*这里定义了一个指针我想应该是用来储存储存顺序表数据的地址*/
     int length;
     int listsize;
}Sqlist;
status Init_List(Sqlist &L)/*构造一个空的顺序表*/
{
     L.elem=(elemtype *)malloc(List_init_size*sizeof(elemtype));/*问题就在这里,书上说这是动态空间分配的做法,但是这么做的意思是什么?构造了一个顺序表然后调用结构体里面的指针给他分配这么多空间是什么意思?*/
     L.length=0;
     L.listsize=List_init_size;
     return 1;
}
void Input(Sqlist &L)/*创建一个顺序表*/
{
     int i;
     printf("请输入顺序表的长度:\n");
     scanf("%d",&L.length);
     printf("请输入顺序表:\n");
     for(i=0;i<L.length;i++)
         scanf("%d",&L.elem[i]);/*这里是第二个问题,前面定义了一个指针,然后这里为什么指针名变成数组名了?它并没有定义数组啊?*/
}
希望各位能解除我的疑惑,万分感谢!
搜索更多相关主题的帖子: include status 知识点 网上 
2017-05-08 20:45
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
我觉得,你应该先看C语言的书,否则以你现在的状态,自己写的代码自己都看不懂,并且你自己写的代码遇到任何BUG,你自己都解决不了。

而且说实话,我并不认为以你现在的状态能够真的看懂数据结构的书,除非你有超神的记忆力,把书上所有的示例代码背下来。

[此贴子已经被作者于2017-5-8 21:08编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-08 21:06
卜算子
Rank: 1
等 级:新手上路
帖 子:86
专家分:8
注 册:2016-9-18
收藏
得分:0 
回复 2楼 renkejun1942
谢谢指教。我就是看书上的,书上给了动态空间分配的一条代码,但是没有解释,就是我说的那两个问题,这个代码是我截取了源代码的一段,毕竟问题就在前面,关于数据结构的书嘛,已经初略的看过一遍了,目前就是寻找问题,

岂曰无衣,与子同袍!
2017-05-09 17:11
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:20 
回复 3楼 卜算子
我多嘴一句,又一个严什么什么的受害者,你这代码不是C,是C++。

顺便回答你一个问题:
当指针指向一个连续的存储空间的时候,指针对某个存储区域的访问可以使用数组下标的形式。
另一方面,对数组中某个元素的访问自然也可以写成指针的形式。
甚至于,编译器会将数组的下标形式自动转换为指针形式。

这么说是否意味着指针形式比下标形式更快?理论上如此,但实际上现代的编译器会自动优化下标形式,而不会优化指针形式。

[此贴子已经被作者于2017-5-9 18:25编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-09 18:22
卜算子
Rank: 1
等 级:新手上路
帖 子:86
专家分:8
注 册:2016-9-18
收藏
得分:0 
回复 4楼 renkejun1942
什么!这是C++?看起来跟C差不多...唔,那 L.elem=(elemtype *)malloc(List_init_size*sizeof(elemtype));这段代码就是开辟一个储存空间然后把他的地址给这个指针的意思吗?如果是这样的话那就OK了,非常感谢您的解答,祝你好运!

岂曰无衣,与子同袍!
2017-05-09 19:45
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 5楼 卜算子
跟C差天上去了,你的代码按照C来编译,连编译都通不过。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-09 19:52
卜算子
Rank: 1
等 级:新手上路
帖 子:86
专家分:8
注 册:2016-9-18
收藏
得分:0 
回复 6楼 renkejun1942
0.0,OK,谢谢啦

岂曰无衣,与子同袍!
2017-05-10 19:08
快速回复:关于顺序表的一个小问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013166 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved