声明与使用

1. 完整例子

C
1int a = 1;
2int *p = &a;
3int *q = NULL; // 不用时置空
4 
5q = p;
6if (q != NULL) {
7 printf("%d\n", *q);
8}

2. 野指针概念

未初始化的指针值随机,解引用可能读写任意内存。声明后要么指向有效对象,要么 NULL。

3. 常见错误

C
1int *p; // 危险:野指针
2*p = 10; // 可能崩溃或写坏内存
3int *p2 = NULL;
4*p2 = 10; // 也危险,必须先判断