想法

为什么指针声明必须初始化

2019-05-07  本文已影响0人  HowardVeen

举一个例子,int  *a;

中间若干语句之后执行

*a =1;

请问这样运行之后程序会出现什么结果,很多人都认为a这个指针最后指向了1,但实际上并不是,如果你运气好,给你分配一个空地址,运气不好,程序直接崩溃,会提示你内存错误。也就是,你这些程序根本就没有指向内存。为什么呢,因为你首先声明了一个指针,但是没有初始化就赋值了,这是不合法的,没有初始化的情况下,a指向哪里完全由操作系统决定,如果操作系统的机制不够成熟,那么这就是一个野指针,指向了一块非法内存地址。所以,一定要初始化,否则后患无穷,怎么初始化呢,你可以初始化为Null,也可以用mesmet,初始化为Null最起码给了一个合法的空地址。说到这里,Nul指针是不能解引用的,因为它没有指向任何地址。

为什么指针声明必须初始化
上一篇下一篇

猜你喜欢

热点阅读