c指针问题
定义了一个
struct student
{
char id[8];
char name[20];
float online_score;
float temp_score;
float mid_score;
float final_score;
struct student *ptrnext;
}
struct student *ptrfirst,*ptrthis,*ptrnext;
main()
{
char ch;
ptrfirst=(struct student *)NULL;
……
……
……
}
请问ptrfirst=(struct student *)NULL;这句该怎么理解呢?
这是一个学生成绩管理系统中的一段程序
[解决办法]
NULL是一个特殊的指针变量,表示不指向任何东西。NULL指针的实际值可能是0值或者编译器确定的内部值。
个人觉得ptrfirst=(struct student *)NULL是个好习惯,但不必过于关注,写成ptrfirst=NULL也无不可。
更多讨论可以参见:http://c-faq.com/null。
[解决办法]
这样子做是为了让NULL这种空的指针变量也具体结构体中的各种数据项,这样可以保证被置空的指针以后在进行被赋值或被转换时不出错误。
这就是严格的意义所在。