首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

c指针有关问题

2012-02-09 
c指针问题定义了一个structstudent{charid[8]charname[20]floatonline_scorefloattemp_scorefloatmid_

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这种空的指针变量也具体结构体中的各种数据项,这样可以保证被置空的指针以后在进行被赋值或被转换时不出错误。

这就是严格的意义所在。

热点排行