head等于null,表示head无任何数据,没有数据和next指针
head
==
null和head->next
=
null是不等价的,后者表示存在head数据,但链表只有head一个节点数据。
struct
Telphone
/*自定义多数据域的链表*/
{
char
name[20]
char
address[20]
char
zip[20]
char
telphone[20]
struct
Telphone
*next
/*链表指针域设定*/
}
typedef
struct
Telphone
TEL
//自定义
TEL
*head=NULL
head=(TEL
*)malloc(sizeof(TEL))
是否用mallo函数分配内存后head就变为了名叫head的节点了。
NULL 就是一个特殊的指针值, 其实本质是一个宏#define NULL (void *)0
也就是0值, 强制转成了指针。
用来表示一个指针非法。 所以在初始化的时候经常用NULL来初始化。
由于是非法指针, 所以对这个指针取值(*操作)会导致程序崩溃。 必须要先指向一个有效空间才可以。
意思是一样,都是用于判断是否为null(空),但是假如你用不同的输入在计算机上,null== a 识别度更高,编写代码中null==的表示更加规范,由于a=null是一个恒为真的的等式,所以为防止输入错误,通用为null==。
拓展资料NULL本意是“空的”;元素只有“零”的意思。计算机中通常表示空值,无结果,或是空集合。在ASCII码的第一个字符是NULL,它的数值是0,占用1字节C语言把它作为字符串的最后一个字符,以表示字符串到此结束"\0"。
NULL指针是一个无类型指针,并且值为0。一个指针,拥有2个属性--地址值和指针类型。两者的作用是:地址值标识变量的首地址(32位系统下指针的地址值占4字节)。
指针类型告诉编译器,应该怎样进行接下来的数据访问(int型数组和float型数组是不同的;数组访问与结构体访问也是不同的;等等)。
NULL的出现是一种约定俗成,事实上它不是C语言中的关键字;把一个指针赋值为NULL,通常的说法是“将指针悬空”。
指针就无法再进行任何数据访问了。编程工作中有一类比较容易犯的错误--指针地址未进行正确的更新赋值就加以使用,这往往会造成很严重的后果(对内存区进行错误的涂抹)。所以一个良好的习惯是,当一个指针的工作稍事休息,先把它赋值为NULL,待到再度使用时,重新对其赋值以及进行指针类型转化。