C语言指针变量为什么要赋初值?

比如: PNODE pHead = NULL;
pHead = create_list(); // create_list()返回的是一个指针 PNODE 定义的是一个指针类型;// 我想知道的是为什么这样,而不是你告诉我不能这样,谢谢;)

第1个回答  2013-12-20
因为指针不初始赋值的话会随机分配一个内存地址,如果后面的代码直接使用的话会出错,C编译器为了不让这种情况发生所以去检测有没有不初始化的指针,其实就是编译器搞得鬼。
第2个回答  2013-12-20
不给指针变量赋初值在语法上是没有错误的,编译执行也可以通过,但是一旦代码量增多后,很容易造成指针的错用,为了防止这一问题最好将指针变量定义的时候就置成NULL,这样做是为了代码安全着想。
第3个回答  2013-12-20
这样可以我当初也是你的想法,但一旦指针多了或工程很大就会忘记了哪个指针没有赋初值然后引用了不改引用的地方而且更悲惨的是:程序有时不抱错,因为这样做可以,语法方面完全正确,完全匹配给了NULL一但更改了地质为NULL的地方,系统会报错,说你不该引用地址为NULL的地方个人观点......本回答被网友采纳
第4个回答  2013-12-20
使用指针必须要初始化,要有一个明确的指向是有目的性的。之后再移动更改才不会造成混乱
相似回答