今天我们来继续感受指针的魅力~
野指针
首先我们来了解一下什么叫野指针~
1.定义
野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)指针变量在定义时如果未初始化,其值是随机的,指针变量的值是别的变量的地址,意味着指针指向了一个地址是不确定的变量,此时去解引用就是去访问了一个不确定的地址,所以结果是不可知的。(来自百度)
也就是说当一个指针没有初始化或者没有给它一个指定的的变量,那么他就是野指针
2.用代码来演示一下
#include <stdio.h>
int main() {
int* p;//这是野指针
int arr[10] = { 0 };
int* pa = arr[10];//这也是野指针
printf("%d", *pa);//如果运行,程序会崩,不会出结果
return 0;
}
3.区别于空指针
这里我们要与空指针做个区分,举个例子 int* p = NULL; 这就是空指针,它是不指向内存的,而野指针则是随机指向内存中的变量地址
以上就是我们第一个部分,接下来进行第二部分~
assret 断言
1.头文件
#include <assret.h>
如果不需要断言那么就在这个头文件之前加上一个定义 #define NDEBUG;
2.用法
assert();
这里括号里面是表达式,表达式为真就无事发生,表达式为假,就会报错,程序不会进行
3.为什么要用它嘞
因为这是特别有效的一种方法来帮你判断你的代码有没有问题,特别直观~
今天指针就说到这里啦,加油!
预计今天会开始更新JAVA,但是C语言也是要继续更滴
标签:变量,指向,int,含野,assert,地址,表达式,指针 From: https://blog.csdn.net/2302_81032013/article/details/142579272