在C语言中值是值,类型是类型,你可以把一个值当做一个类型来处理,也可以当做另外一个类型来处理。比如:值1001,你可以把它当做int类型来处理,那么他就可以进行数学运算符了,你也可以把它当做int*来对待,那么 1001 就是一个地址,可以进行解引用之类的操作了。
没事可以多看看网上的免费视频,比如黑马程序员之类,多掌握基础知识。
NULL与0的区别:还是让我们看一下windef.h中NULL的定义:
#ifndef
NULL
#ifdef
__cplusplus//这个是指示是用C++来编译程序
#define
NULL
0
//用NULL这个字符代表0
#else
#define
NULL
((void
*)0)
#endif
#endif
所以说:它们没有区别,只不过在C里面会做一个强制类型转换。
C语言的0和NULL的确是相同的,NULL其实是一个#define定义,在每一种C语言编译器中都有头文件来定义NULL这个符号,NULL的定义类似于这样:#define NULL 0
所以空指针0和空指针NULL是一回事。