您的位置:首页 > 其它

常量指针、指针常量、野指针、空指针概念解析

2015-10-15 10:58 148 查看
指针常量与常量指针的区别:

int a;
int * const p = &a    //指针常量    *p可以修改*p = 8;(OK)
p不可以修改 p++(ERROR)

int a,b;
const int *p = &a;   //常量指针    *p不可修改 *p = 8;(ERROR)
p 可以修改 p = &b  (OK)

野指针:

野指针指指向一个已删除的对象或未申请访问受限内存区域的指针。

空指针:

void* 这不叫空指针,这叫无确切类型指针.这个指针指向一块内存,却没有告诉程序该用何种方式来解释这片内存.所以这种类型的指针不能直接进行取内容的操作.必须先转成别的类型的指针才可以把内容解释出来.

还有'\0',这也不是空指针所指的内容. '\0'是表示一个字符串的结尾而已,并不是NULL的意思.

真正的空指针是说,这个指针没有指向一块有意义的内存,比如说:

char* k;

这里这个k就叫空指针.我们并未让它指向任意地点.

又或者

char* k = NULL;

这里这个k也叫空指针,因为它指向NULL 也就是0,注意是整数0,不是'\0'

一个空指针我们也无法对它进行取内容操作.

空指针只有在真正指向了一块有意义的内存后,我们才能对它取内容.也就是说要这样

k = "hello world!";

这时k就不是空指针了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  指针 C