指针的初始化
int ducks = 12;//创建ducks变量,并将值12存储在该变量中
int *birddog = &ducks;//创建birddog变量,并将ducks的地址存储在该变量中
被初始化的是指针,而不是它指向的值
(即将birddog(而不是*birddog)的值初始化为&ducks(ducks的地址))
另:一个危险的错误:\color{red}{另:一个危险的错误:}另:一个危险的错误:
int *fellow;
*fellow = 2333333;
在对指针应用解除引用运算符(∗)之前,一定要将指针初始化为一个确定\color{red}{在对指针应用解除引用运算符(*)之前,一定要将指针初始化为一个确定}在对指针应用解除引用运算符(∗)之前,一定要将指针初始化为一个确定
且适当的地址。\color{red}{且适当的地址。}且适当的地址。
错因:由于fellow没有被初始化,它可能有任何值,第二条语句将其解释为\color{red}{错因:由于fellow没有被初始化,它可能有任何值,第二条语句将其解释为 }错因:由于fellow没有被初始化,它可能有任何值,第二条语句将其解释为
存储233333的地址,但事实上fellow指向的地方很可能并不是要存储233333的地方。\color{red}{存储233333的地址,但事实上fellow指向的地方很可能并不是要存储233333的地方。}存储233333的地址,但事实上fellow指向的地方很可能并不是要存储233333的地方。