当前位置: 首页 > backend >正文

嵌入式开发学习日志Day14

 一、指针的加法运算

 注意:一边为指针,一边为整型;

            地址与地址之间不能求和,但可以求差(如果相减,表示之间相差几个基类型字节,根据正负可以判断谁在前谁在后),必须保证基类型相同

eg:

int a[] = {1,2,3,4,5,6,7,8,9,0};
int *p = a;
p + 1;
pprintf("%d\n",a);

地址加n,实际是地址向后偏移sizof (基类型)乘以n个字节;

(1)判断电脑是小端存储还是大端存储; 

(2)求一个数组中的最大值;

程序:

(3)将一个数组中的元素逆序输出; 

 

 (4)用指针进行选择排序;

程序:

二、空指针 NULL

一般定义:

#define NULL (0)

 空指针无法进行指针运算;

空指针表示一种状态,指没有指向任何地址;该地址指向的空间不可被访问;

 防止野指针的方法: int *p = NULL

eg:查找数组中的数;

程序:

 

 三、指针的比较大小

指针比较大小时,基类型必须相同;

eg:便利数组;

程序:

 

 (2)将数组中的元素逆序输出;

(3)用函数的递归调用将数组逆序输出; 

 程序:

 四。快速排序法

迭代法加递归调用

(1)先将数组的第一个值作为基准数;

(2)从右往左找一个比基准数小的数q;(必须先从右往左)

(3)从左向右找一个比基准数大的数p;

(4)然后交换p和q;循环上述操作;

(5)用p和q相遇的元素和基准数交换;

(6)然后用中间的数将其分为两个小数组;重复操作;

eg:快速排序法;

程序:

(1)选择排序法

程序:

(2)冒泡排序法

程序:

 

(3)用二分法查找数组中的元素;

 练习:

(1)用插入法排序;

程序;

(2)使用一对迭代器,并采用函数递归调用的方式实现二分查找, int *binaryFind(int *begin, int *end, int n);

程序:

 

 

http://www.xdnf.cn/news/4352.html

相关文章:

  • LeetCode 解题思路 45(分割等和子集、最长有效括号)
  • Messenger.Default.Send 所有重载参数说明
  • 星纪魅族新品发布会定档5月13日,Note 16系列战神归来
  • 【5G通信】天线调整
  • 笔记系统的价值
  • 【C++】基础语法
  • 微调大模型如何准备数据集——常用数据集,Alpaca和ShareGPT
  • 学习groovy知识点总结
  • TCP数据报
  • B2134 质数的和与积
  • 新品发布 | 用于诊断开发的多通道MC800车辆通信卡
  • 油价查询开发指南:多源校验+成本预测模型(含等保二级合规方案)
  • 【HarmonyOS 5】鸿蒙发展历程
  • STM32F4 PWM 配置程序
  • 426、N叉树的层序遍历
  • var、let、const三者之间的区别和使用
  • WiFi那些事儿(七)——802.11速率表
  • Hybrid接口配置与应用指南
  • Webug4.0靶场通关笔记17- 第21关文件上传(htaccess)
  • Leetcode 刷题记录 08 —— 链表第二弹
  • FreeRTOS任务与中断服务程序ISR
  • 推荐系统架构设计
  • 雅思阅读--易错词汇60个
  • 《深入理解分布式系统》之认识分布式系统
  • 兰亭妙微设计外包:把专业交给专业,让创意落地生花
  • Kaamel白皮书:GenAI 时代的隐私困境
  • 依图科技C++后端开发面试题及参考答案
  • 基于 Spring Boot 瑞吉外卖系统开发(十)
  • NVIDIA Halos:智能汽车革命中的全栈式安全系统
  • LeetCode 220 存在重复元素 III 题解