![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
karwen2020
机械、自动化、嵌入式
展开
-
STM32 EXTI外部中断/事件
一、EXTI外部中断/事件功能框图1、中断线路:①-②-③-④-⑤①输入线:有19个中断/事件输入线(联网型有20个),通过寄存器将这些输入线设置为任意一个GPIO。②边沿检测电路:选择上升沿触发、下降沿触发或者上升和下降沿都触发。③或门:选择软件触发或者GPIO输入触发中断。④与门:从或门③输出的信号分为两路,上路经过请求挂起寄存器输出与中断屏蔽寄存器一起控制与门的输出,并将与门④的输出保存至挂起寄存器EXTI_PR。⑤、将EXTI_PR寄存器内容输出至NVIC。2、事件线路:①-②-③-⑥原创 2022-06-19 17:57:34 · 2731 阅读 · 0 评论 -
数据结构——AVL平衡树(非递归)
AVL平衡树(非递归)原创 2022-08-30 21:21:19 · 124 阅读 · 0 评论 -
数据结构——AVL平衡二叉树(递归法)
AVL平衡二叉树原创 2022-08-30 19:10:43 · 439 阅读 · 0 评论 -
数据结构——二叉排序树的删除操作(递归法)
二叉排序树的删除操作(递归法)原创 2022-08-29 18:41:44 · 1279 阅读 · 0 评论 -
数据结构——二叉排序树的删除操作(非递归)
二叉排序树的删除操作原创 2022-08-29 16:43:54 · 4887 阅读 · 4 评论 -
如何理解typedef+数组\结构体指针
如何理解typedef+数组\结构体指针原创 2022-08-28 21:12:18 · 212 阅读 · 0 评论 -
数据结构-Dijkstra最短路径算法
Dijkstra最短路径算法原创 2022-08-27 22:19:16 · 938 阅读 · 0 评论 -
数据结构——Kruskal法最小生成树
Kruskal法最小生成树原创 2022-08-25 18:08:13 · 125 阅读 · 0 评论 -
数据结构——Prim法最小树生成
Prim最小树生成原创 2022-08-25 17:21:47 · 235 阅读 · 0 评论 -
数据结构——新建一个图,并深度遍历
新建一个图,并深度遍历原创 2022-08-24 21:25:16 · 126 阅读 · 0 评论 -
如何理解typedef+结构体数组?
如何理解typedef+结构体数组原创 2022-08-24 12:12:37 · 483 阅读 · 0 评论 -
数据结构——二叉树的线索化以及线索化输出
二叉树的线索化以及线索化输出原创 2022-08-20 16:02:06 · 296 阅读 · 0 评论 -
数据结构——新建一棵完全二叉树(C语言动态实现)
C语言动态实现一棵完全二叉树原创 2022-08-18 22:13:04 · 3268 阅读 · 1 评论 -
数据结构——新建一个最简单的排序二叉树(简单易懂)
新建一个最简单的排序二叉树原创 2022-08-17 18:03:10 · 471 阅读 · 0 评论 -
数据结构——排序二叉树
排序二叉树原创 2022-08-14 18:52:53 · 413 阅读 · 0 评论 -
数据结构——排序二叉树的前序、中序、后序遍历
二叉树的前序、中序、后序遍历原创 2022-08-13 17:00:19 · 317 阅读 · 0 评论 -
数据结构——字符串暴力匹配
字符串暴力匹配原创 2022-08-09 21:42:15 · 152 阅读 · 0 评论 -
数据结构——循环队列
循环队列原创 2022-08-09 20:36:05 · 131 阅读 · 0 评论 -
数据结构——堆栈
堆栈原创 2022-08-08 14:43:30 · 123 阅读 · 0 评论 -
数据结构——双循环链表
双循环链表原创 2022-08-08 11:53:25 · 81 阅读 · 0 评论 -
数据结构——双链表
双链表原创 2022-08-07 20:57:57 · 74 阅读 · 0 评论 -
数据结构——单循环链表
单循环链表原创 2022-08-07 16:55:41 · 230 阅读 · 0 评论 -
数据结构——线性链表
线性链表原创 2022-08-06 11:28:05 · 66 阅读 · 0 评论 -
数据结构:单向链表
数据结构之单向链表原创 2022-06-05 16:16:31 · 86 阅读 · 0 评论 -
C语言结构体
结构体的定义和使用原创 2022-06-03 21:43:22 · 85 阅读 · 0 评论 -
C语言二级指针与数组
c语言使用指针引用二维数组原创 2022-05-31 20:33:16 · 275 阅读 · 0 评论 -
用指针表示二维数组
①定义一个二维数组int matrix[2][5]={ {1,2,3,4,5},{6,7,8,9,10} };②声明一个指针处理这个数组int (*p_matrix)[5]=matrix;//p_matrix的类型为int **,而不是int *,p_matrix=matrix=&matrix[0](int * 类型)≠&matrix[0][0](int * 类型),函数传参时要注意。方括号[ ]中的5表示二维数组每一行含有5个元素。注意()一定不能省,如果去掉括号,int *p_原创 2022-05-30 22:09:37 · 2555 阅读 · 0 评论 -
函数指针及其使用
一、函数指针的定义函数指针是持有函数地址的指针。在汇编语言中,使用CALL、JMP、LOOP等跳转指令时,后面需要接一个跳转地址(对应C语言中的指针),如16位CPU中,地址为4位16进制数,为了程序编写方便,我们一般在需要跳转到的段前加一个段标记,这个段标记会被编译器翻译为该行程序在内存中的地址,我们使用CALL、JMP、LOOP等指令时,只需要在指令后加上代表该段地址的段标记,而无需填写实际的地址。例如下段汇编程序:assume cs:code//汇编伪代码 code segment//code原创 2022-05-29 17:18:50 · 453 阅读 · 0 评论 -
函数使数组名作为形参,array[i]表示&array[i]
定义一个数组int array[10]={0,1,2,3,4,5,6,7,8.9],使用数组元素的名称array作为函数的形参,在函数内使用array[i]时,此时表示的是array+2(一个指针变量),而不是数组的第3个元素array[2]=2。#include <stdio.h>#include <stdlib.h>void sort(int a[],int n);int main() { int a[10],i; printf("交换顺序前:");原创 2021-03-31 20:07:17 · 1165 阅读 · 0 评论 -
C语言中 *、p、++不同组合的区别
若p指向数组元素a[]的首地址:*p=a;1、p++;*p; 运行结果得到a[1]的值2、*p++; *和++同优先级,自左向右结合,等价于*(p++)3、*(p++); 运行结果得到a[0]的值,同时p=&a[1]4、*(++p); p=&a[1],同时运行结果得到a[1]的值5、++(*p); 运行结果得到a[0]+1...原创 2021-03-17 20:30:10 · 739 阅读 · 0 评论 -
c语言中形参与实参的关系
c语言中形参与实参的关系形参是实参的值得副本,实参到形参传值是单向的。例如:在main( )函数中定义的a,b无法通过调用swap( a, b)函数交换a,b的值。如果参数类型是指针类型,则可以通过对指针变量所指向的地址中的数据进行修改,达到改变实参地址中的数据目的。此时指针变量的值不变,但指针变量指向的地址中所保存的值变了。通过指针变量做参数可以达到修改多个变量值的目的。#include<stdio.h>int main(){ void swap(int *,int*);原创 2021-03-04 22:02:21 · 1578 阅读 · 1 评论 -
输入年月日判断是该年的第几天
#include <stdio.h>int isLeapYear(int);int main() { int a,b,c,i,days_of_year=0; printf("请输入年月日,以空格隔开:"); scanf("%d%d%d",&a,&b,&c); while((b==1||b==3||b==5||b==7||b==8||b==10||b==12)&&(c<1||c>31) ||原创 2021-03-03 22:49:46 · 556 阅读 · 0 评论