| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1939 人关注过本帖
标题:关于c语言链表指针的问题请教。
只看楼主 加入收藏
wj66
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2019-8-16
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:7 
关于c语言链表指针的问题请教。
下图中:
1).LinkList为结点的指针类型,然后定义出LinkList p和s。那p就是结构性指针了,那*L要表达的是什么意思呢?我个人想,如果要指针指向头结点,直接定义个LinkList L,然后p=L不就实现了,为什么要*L呢??
谢谢您解答!

图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2019-9-13 20:07编辑过]

搜索更多相关主题的帖子: 链表 结点 c语言 定义 指针 
2019-09-13 20:05
沈和
Rank: 4
等 级:业余侠客
威 望:5
帖 子:45
专家分:214
注 册:2019-8-26
收藏
得分:7 
这个程序是不是,让找哪里有错的?到处都是错误。
2019-09-13 20:46
沈和
Rank: 4
等 级:业余侠客
威 望:5
帖 子:45
专家分:214
注 册:2019-8-26
收藏
得分:0 
回复 2楼 沈和
我说错了,没审清题目。你的想法是对的,也许这个题目只是想增加一点复杂度。
2019-09-13 20:57
wj66
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2019-8-16
收藏
得分:0 
回复 3楼 沈和
不好意思。我这个不完整,还有一部分声明由于文件太大了,没法传上来。
2019-09-14 16:52
c小白2333
Rank: 5Rank: 5
来 自:中国
等 级:贵宾
威 望:11
帖 子:121
专家分:367
注 册:2019-6-17
收藏
得分:7 
楼主说的很对
确实不许要加上*号
我用的时候也都是直接赋值的
在C++中喜欢LinkList &L使用
可能为了在C中和C++有区别而特意加的吧

宝剑锋从磨砺出,梅花香自苦寒来。
2019-09-14 21:35
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:7 
*L   本意是  取L这个指针变量所保存的指针所指向的变量上的内容。{我们以钥匙比作变量的地址,盒子比作变量。&L 表示能打开L这个盒子的钥匙,*L表示打开L的盒子拿到盒子里面的钥匙去打开对应那把钥匙的盒子,把那个盒子里面的数据拿出来}
C语言的特性是函数只传形参(只是把外界传入的参数复制一份,在另一个位置重新声明定义这个参数的复制品,在函数内部的所有操作,均无法影响到函数以外的变量。除非你传递给函数的是一个指针------ 一个你要修改的变量的存放地址/一个指向你要修改的变量的指针)。   
根据我的理解,就这张图所没有包含的,那个调用  ListInsert()函数的地方,,,,对应的写法应该是ListInsert(&L,i,e)

---------------这是void类型函数的写法,链表插入删除查找操作还有一种带有返回值的函数写法,那种写法没这么绕口令,比较好理解一点。函数调用L=ListInsert(L,i,e);  函数体 LinkList Insert(LinkList L,int i,ElemType e){  ...  return L;   }
假设  
int main(){ int i =4;    ;  int*p=&i  ;  printf("%d---%d******%d",&i,p,*p);//注意看这个输出,你可以多运行几遍程序,通常来说i这个变量的地址会略有改变,但是*p一定是等于i的,不信你可以主动修改第一个赋值语句,令i等于别的数字
}




φ(゜▽゜*)♪
2019-09-16 01:03
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:0 
回复 5楼 c小白2333
*L  和 L 是两个不一样的概念,不是反斜杠写注释,//////一堆也没事

φ(゜▽゜*)♪
2019-09-16 01:06
c小白2333
Rank: 5Rank: 5
来 自:中国
等 级:贵宾
威 望:11
帖 子:121
专家分:367
注 册:2019-6-17
收藏
得分:0 
回复 7楼 书生牛犊
你可能误会我的意思了
我说的是这样的结构体
程序代码:
typedef struct Node
{
    ElemType data;
    struct Node* next;
}Node, *LinkList;

这样LinkList p;
就已经是指针了 可以直接使用来改变链表
如果是Node p;的化就需要&和*来用了

宝剑锋从磨砺出,梅花香自苦寒来。
2019-09-16 19:37
快速回复:关于c语言链表指针的问题请教。
数据加载中...
 
   



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

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