C语言入门学习——各类指针、快速排序(2025.1.20)

一、空指针,野指针,无类型指针


1.空指针

        是指没有指向任何一个存储单元的指针,内部装的内容全为0。当我们需要用到指针,但不确定指针指向何处时使用。一般形式为:

        int *p = NULL;

2.野指针

        未初始化的指针,内部装的内容为随机数,可能指向系统中任意一块存储空间,若指向的存储空间正在使用,当发生调用并执行操作时,就可能造成系统崩溃。

        返回值为指针的指针函数,若返回指向局部变量地址的指针,具有动态生存期的局部变量在销毁后,该指针则变为野指针。

3.万能指针

        这种指针指向一块内存,但因其类型不定,程序无法根据这种定义为该指针指向的变量分配存储空间,所以如果要使用该指针为其他指针赋值,必须先类型转换成其他类型的指针。例如:

        void *p;

 

二、const的用处


1.对普通变量

        使该变量变为只读状态,无法通过直接访问来修改其内容。例如:

const int i = 123;
i = 100;   //错误,只读变量无法赋值

        但可以通过指针对其进行间接访问来修改内容。

2.对指针变量

        使指针所指向的内容变为只读状态,无法通过指针对其间接访问来修改内容。例如:

int i = 123;
const int *p = &i;
*p = 100;   //错误,不可修改指向的内容

        使指针变为只读状态,无法修改指针内的地址。例如:

int i = 123;
int const *p = &i;
p += 1;    //错误,不可修改指针内的地址

 三、快速排序


        指针内装的是地址,因此指针之间不能进行加法运算,但进行减法运算。相减的结果为两指针所装地址相差多少个基类型

快速排序:

选定基准值,从两头分别和基准值比较,比基准值大的向后,比基准值小的向前,优先排好基准值。

二分查找法:

快速查找法: 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值