从零开始学习嵌入式day13

指针:

        1.指针变量初始化:如果指针变量没有初始化,此时是随机值。也就是野指针。初始化可以让指针变量有明确指向。 

                int *p = NULL //NULL 0号地址。也叫空指针。

        2.定义多个指针类型变量:int *P,*q;  //定义时候的 * 是修饰变量名的,表示定义的是一个指针类型的变量。

        3.为什么需要指针?  可以实现被调修改主调(指针的主要的用途)。

                1.指针作为函数参数。

                        形参  ---指针类型变量,用来接收实参。(实参是要修改内存空间的地址)

                        实参 ----要修改谁,就把谁的地址传过去。要保证空间有效。

                                        注意:被调函数中,一定要有 *P运算。

                !!!值传递:只是实参数据赋值给了形参。

                           地址(指针)传递 :传的是地址 ---可以实现被调修改主调

指针+一维数组:

         1定义一个什么类型的指针变量?int *p= a;int *p = &a[0];

        2.谁能代表数组所在空间的首地址。a//&a[0]

        3.数组名是一个常量,不能做自增自减。

指针的运算:&;*;p++;p--;指针比较<;<=,>;>=;

        p+n:表示跳过了n个基类型,

        *&p  == p

        *(p+i) <=>a[i] <=>*(a+i)

        p-q: //表示差了多少个元素个数,也就是差了多少个基类型。(必须是同一类型的指针才能进行减法)

        不能进行p+q;p*q;p/q.

数组作为函数的参数:

        形参 ---数组形式  //  本质上是一个指针型变量。

                                int *a

        实参 ---数组名 //

快速排序:

        思想:分而治之。

        过程:1.找begin开始位置上的值作为一个基准值

                   2.从最后的end开始向前找,直到找到一个比基准值小的数

                   3.从开始的begin开始向后找,直到找到一个比基准值大的数

                   4.交换此时begin和end 位置上的值。

                   5.重复2~4直到begin=end;交换此时begin和end相等位置上的值和基准值。

                   6.再从基准值左边开始重复1~5.再从基准值右边开始重复1~5.直到确定每一个位置上的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值