美文网首页想法
为什么指针声明必须初始化

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

作者: HowardVeen | 来源:发表于2019-05-07 23:47 被阅读0次

举一个例子,int  *a;

中间若干语句之后执行

*a =1;

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

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

相关文章

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

    举一个例子,int *a; 中间若干语句之后执行 *a =1; 请问这样运行之后程序会出现什么结果,很多人都认为a...

  • 指针图库

    初始化: 赋值: 声明指针: 指针赋值: ![Uploading Paste_Image_764703.png ....

  • 08/10

    一 、链表初始化 表示一个数组; 二、指针对指针,指针对函数; 三、声明 声明语法 储存的类型 类型限定符 声明符...

  • C++ 知识快速回顾

    一. 引用 1. 引用与指针的区别 声明引用时必须初始化,指针可以后续赋值 对引用取地址就是对目标向量取地址 引用...

  • 野指针产生原因及解决办法

    情况一 原因指针变量声明时没有被初始化。 解决办法指针声明时初始化,可以是具体的地址值,也可让它指向NULL。 情...

  • 指针和引用

    指针和引用的区别: 主要是两点: 引用使用时必须非空即必须初始化为非空值,指针则初始化时可以为空; 引用初始化后不...

  • Kotlin延迟初始化lateinit和by lazy的区别

    延迟初始化为什么要进行延迟初始化?kotlin中的属性在声明的同时必须初始化,否则会报错 private var ...

  • 软件测试经典面试题(3)

    引用与指针有什么区别? 1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象...

  • 指针常量和常量指针

    指针常量:(指针变量前加const) int *const p;指针本身是一个常量。在声明的时候初始化,里面的值(...

  • C 基础-指针,函数处理器

    指针 指针是一个变量,其值为地址。声明指针或者不再使用后都要将其置为0 (NULL)野指针 未初始化的指针悬空指针...

网友评论

    本文标题:为什么指针声明必须初始化

    本文链接:https://www.haomeiwen.com/subject/jytpoqtx.html