| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1866 人关注过本帖
标题:关于while(head!=NULL)这句不知道我有没有理解对(错了勿喷)
只看楼主 加入收藏
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
结帖率:58.18%
收藏
已结贴  问题点数:20 回复次数:7 
关于while(head!=NULL)这句不知道我有没有理解对(错了勿喷)
我们为了输出链表,将head赋给t指针变量,然后while(t!=NULL)依次输出。
当时我在书上做了标记为什么不是while(*t!=NULL),当时没认真思考,直接记下了。
当指针变量指向非空时我们一直输出数据,那么 *t 才表示指针指向的空间的内容,
可这样必然不对,因为空间存储数据  是0时 还是存储数据了的,当时就这样理解的吧。

现在再来看,
指针是一个地址,指针变量是存放地址的变量。
t!=NULL,现在的问题是这里的t究竟是指针还是指针变量。
int *p,  p则是一个指针变量
t应当是指针变量,t!=NULL,即指针变量 的值 不为NULL。 即 地址存在或者说指向一个空间了  就输出。这句“指针变量指向非空时我们一直输出数据,那么 *t 才表示指针指向的空间的内容”实际上不是指向空间内容非空输出,是指向空间则输出。
那时候刚学,现在看看当时的标记有些新的感悟。

那么问题来了  什么是指针变量的值。

问:指针变量的值是地址,指针是地址。指针变量的值是指针??

头指针指向空的含义不是指向空间的内容为空,而是它并没有指向任何空间。
其实我有点糊了。。。。理解错了的话,请讨论。


再看看这本书上,写的是不是有点随意。  指针   存储下一个结点的  地址。
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 空间 
2015-10-09 21:21
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:7 
沒問題

授人以渔,不授人以鱼。
2015-10-09 21:29
pycansi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:418
专家分:1060
注 册:2012-7-26
收藏
得分:7 
指向空表示变量储存的地址是 0


莫问前尘有愧,但求今生无悔
2015-10-10 10:50
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
收藏
得分:0 
回复 3楼 pycansi
ee恩恩
2015-10-10 13:11
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
收藏
得分:0 
回复 3楼 pycansi
是不是这样的。

NULL是一个符号常量,代表整数0。
它已经在stdio.h头文件中对NULL进行了定义,#define NULL 0。
p=NULL,它使p指向地址为0的单元。系统保证使该单元不作它用。
也就是说。指向空就是指向一个单元但单元并不存储数据
2015-10-10 13:17
pycansi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:418
专家分:1060
注 册:2012-7-26
收藏
得分:0 
回复 5楼 令狐少侠56
指向 0 主要是一种约定,意思是指向这时就不要使用了


莫问前尘有愧,但求今生无悔
2015-10-10 16:21
qq1625127317
Rank: 6Rank: 6
等 级:等待验证会员
威 望:1
帖 子:185
专家分:450
注 册:2015-9-3
收藏
得分:7 
NULL代表“0”,但这个“0”是地址!就是内存的编号为“0”!这个地址里面存放的东西是用来解决电脑异常情况的,非常重要!,就比如蓝屏等等,电脑重启之后就好了,所以这里面的东西是不能访问和调用的。

从前风闻有你,现在我亲眼看见你
2015-10-10 22:56
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用qq1625127317在2015-10-10 22:56:41的发言:

NULL代表“0”,但这个“0”是地址!就是内存的编号为“0”!这个地址里面存放的东西是用来解决电脑异常情况的,非常重要!,就比如蓝屏等等,电脑重启之后就好了,所以这里面的东西是不能访问和调用的。


不要做這樣的理解!6樓是對的,這是一種“約定”,不是什麼指向地址為零,對某些實現來說,“空指針”的値未必是零。

[ 本帖最后由 TonyDeng 于 2015-10-10 22:58 编辑 ]

授人以渔,不授人以鱼。
2015-10-10 22:57
快速回复:关于while(head!=NULL)这句不知道我有没有理解对(错了勿喷)
数据加载中...
 
   



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

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