const修饰指针

const int *p = &a; // 这里const修饰的是*,不能通过*p修改p所指空间的内容,即a的值
int * const p = &a; // 这里const修饰的是p,不能改变指针变量p的指向,p保存的地址不能修改
const int * const p = &a; // 都不能修改

野指针

野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)指针变量在定义时如果未初始化,其值是随机的,指针变量的值是别的变量的地址,意味着指针指向了一个地址是不确定的变量,此时去解引用就是去访问了一个不确定的地址,所以结果是不可知的。

空指针

在编程语言中,空指针(Null Pointer)是一个已宣告但并未指向一个有效对象的指针,许多程序利用空指针来表示某些特定条件,例如未知长度数组的结尾或某些无法执行的操作。在可选择类型(optional type)的编程语言中,空指针通常可以跟可为Null的类型(Nullable types)和空值(Nothing value)进行比较。

空指针与未初始化的(Uninitialized_variable)指针(uninitialized pointer)不同,空指针保证不会和有值的指针相等,而未初始化的指针则是要看所使用的编程语言或编译器而定,在部分编程语言环境下,未初始化的指针无法保证不与有值的指针相等,他可能因为存有存储器残值而指向了某个有效对象。


Yarr04n
1 声望0 粉丝