c语言中指针的一个小错误
在定义指针后需要给指针赋值然后才能使用*p赋值或被赋值,这是个基础问题,没有理解,导致出问题。
空指针 ,也称悬 游指 针 ,是使 用 未初 始化 的指 针 。
指针变量未初始化时它的值不是没有 ,而是一个不确
定值 ,它 的指 向也 是 不确 定 的,可 能 会 破 坏 系 统 正 常
工作状 态 ,出现灾难 性后果 。
例 :
m ain ( )
{int a = 10 , *p a ;
*p a = a :
*pa +=5 ;
prin tf (“a=%d ”, p a) ;
)
本例中的程序本意是利用指 针将变量 a 的值增
加 5,但 由于指针 pa 未初始化 ,指 向的是 内存 中某一
未知的位置,即指针 pa 本身是不确定 的。因此数据
不能被正确进行运算。在使用指针前使其指向一个
有效 的地 址 ,将 * pa=a;改 为 pa=& a;,即可 实 现相
应 的功 能 。