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

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

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

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

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

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

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

 

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

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

  • 17
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值