C语言中指针定义时,必须初始化

“指针” 所指向的变量的数据类型其一般形式为: 类型说明符 *变量名;
其中,*表示这是一个指针变量,变量名即为定义的指针名字名,类型说明符表示本指针变量所指向的变量的数据类型。

指针变量同普通变量一样,使用之前需要定义;

并且必须进行初始化。这是与普通变量最大不同的地方;未初始化的指针变量不能使用, 否则将造成系统混乱,甚至死机。

指针变量的初始化只能赋予地址, 决不能赋予任何其它数据,否则将引起错误。

在C语言中, 声明一个指针变量并不会自动分配任何的内存,对指针执行间接访问前,指针必须初始化:或者使它指向现有的内存,或者为其分配动态内存。

定义一个指针时,如果不进行初始化,系统会为这个变量自动分配一个地址,这个地址的值就是指针的值可能为0Xxxxxxxxx,不初始化这个指针的值的话,操作这个指针就想当于操作这个0Xxxxxxxxx这个地方的内容,就会出现问题,因为你并不知道这个指针指向地址的内容,可能为段系统代码,错改的话,可能会让系统崩溃。

NULL指针就是不指向任何东西的指针,它可以赋值给另一个指针,永远表示这个指针不指向任何值。对于NULL指针执行任何的间接访问操作的后果是不确定的,由编译器决定。

除了NULL指针之外,再没有任何内建的记法来表示指针常量,因为无法预知编译器会把变量放在什么位置。

发布了11 篇原创文章 · 获赞 10 · 访问量 5705

猜你喜欢

转载自blog.csdn.net/bxlover007/article/details/104844652