C语言
文章平均质量分 50
free(me)
这个作者很懒,什么都没留下…
展开
-
32位和64位系统中各个变量类型占的字节数
原文:https://blog.csdn.net/ykun089/article/details/107484042所以:在32位系统和64位系统下只有指针类型和长整型字节数有所差别,其余全部相同32位 指针 :4个字节 long :4个字节64位 指针 :8个字节 long : 8个字节。转载 2022-12-31 13:24:18 · 2992 阅读 · 0 评论 -
检测到 #include 错误。请更新 includePath。已为此翻译单元(E:\abc.ino)禁用波形曲线。C/C++(1696) 无法打开 源 文件
使用VS code的时候,使用windows子系统linux,遇到了头文件包含了以后,报错的情况。本文记录如何解决此问题。原创 2022-11-30 19:23:50 · 1513 阅读 · 0 评论 -
数码管显示
本文记录的是C51单片机的数码管显示。原创 2022-11-13 23:10:08 · 146 阅读 · 0 评论 -
C语言之goto
本文记录的是C语言中的goto知识。原创 2022-07-16 15:57:20 · 2272 阅读 · 0 评论 -
主函数尽量避免死等的延时函数
文章目录前言一、实时性的重要性二、避免使用延时函数三、推荐做法1.main.c2.中断服务函数文件it.c前言我们编写单片机的程序的时候,大家最容易忽略的是它的实时性,所以导致会出现明明程序没有写错,但却出现bug,这是为什么呢? 是因为单片机的程序是裸机,没有带操作系统。很多时候会被刚入门的单片机爱好者忽略掉实时性,导致会丢失事件。一、实时性的重要性我们先来谈谈为什么单片机有时候会丢失事件。首先,我们知道单片机程序是轮询模式,是一个语句执行完以后,再执行下一条语句,整个主函数就是一个进程,进原创 2022-04-19 15:40:27 · 1248 阅读 · 0 评论 -
C语言中typedef void(*F)(类型)解读
文章目录一、typedef void(*T)(void *)1. void(*T)()2. void(*T)(void *)3. typedef void(*T)(void *)二、typedef void(*T)(非void *指针)1.void(*task_func)()2. void(*task_func)(uint8_t tb_flag, uint8_t *const power_mode)3. typedef void(*task_func)(uint8_t tb_flag, uint8_t原创 2022-04-12 09:55:49 · 6223 阅读 · 2 评论 -
NTC——热敏电阻
文章目录前言一、NTC简介1.NTC特性2.NTC常见电路图3.NTC的电压算法二、NTC的AD值表1.NTC温度表二、编程1.思路2.关键代码总结前言本文记录的是有NTC热敏电阻,总结下NTC热敏电阻温度值的采集方法软件实验平台:keil5硬件:ARM M0一、NTC简介1.NTC特性ntc是一个热敏电阻,温度越高,阻值越小。采集到电压也是越小(串联分压)2.NTC常见电路图 图一10K电阻和NTC热敏电阻调换顺序,会改变ADC采集的电压,原创 2022-04-07 16:33:05 · 9717 阅读 · 0 评论 -
力扣每日一题34——在排序数组中查找元素的第一个和最后一个位置
文章目录前言一、示例二、思路和代码1.思路2.代码前言`题目:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。一、示例二、思路和代码1.思路①当数组没有与target相同的元素,则返回[-1, -1]②当数组与target有一个相同的元素,则返回相同的元素的位置i。[i, i]③当数组与target有两个相同的元素,则返回第一个相同的元素的位置i。[i,原创 2022-03-07 23:29:43 · 200 阅读 · 0 评论 -
力扣每日一题12——整数转罗马数字
文章目录前言一、题目示例二、代码总结前言本文所使用的方法是官方题解,若想知道题解思路,请查看官方题解地址:https://leetcode-cn.com/problems/integer-to-roman/solution/zheng-shu-zhuan-luo-ma-shu-zi-by-leetcod-75rs/一、题目示例题目:示例:二、代码代码如下(示例):const int values[] = {1000, 900, 500, 400, 100, 90, 50, 40..原创 2022-03-06 13:57:21 · 157 阅读 · 0 评论 -
力扣每日一题520——检测大写字母
文章目录前言一、示例二、思路与代码1.思路2.代码前言题目:我们定义,在以下情况时,单词的大写用法是正确的:全部字母都是大写,比如 “USA” 。单词中所有字母都不是大写,比如 “leetcode” 。如果单词不只含有一个字母,只有首字母大写, 比如 “Google” 。给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false一、示例二、思路与代码1.思路返回true的情况有三种:①全部为大写②全部为小写③只有首字母为大写,其余为小写..原创 2022-03-05 10:45:22 · 204 阅读 · 0 评论 -
全局变量能在头文件定义吗?
————————————————版权声明:本文为CSDN博主「十一月zz」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/baidu_35679960/article/details/79200865————————————————C语言可以在不同的源文件中定义相同名字的全局变量吗?不使用static的时候,两个不同的源文件都可以正常编译,但会出现链接错误,原因是有两个地方存在相同的变量,导致编译器无法识别应该转载 2022-03-03 17:11:47 · 3083 阅读 · 1 评论 -
力扣每日一题268——丢失的数字
文章目录前言一、示例二、思路和代码1.思路2.代码前言题目:给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。一、示例二、思路和代码1.思路创建一个数组arr,这个数组用来显示哪些数字存在过。比如nums[1] 的值是5,则arr[5]的值就加1,找出arr中的值是0的位置2.代码代码如下(示例):#define num 10000int missingNumber(int* nums, int numsSi..原创 2022-02-25 23:34:37 · 182 阅读 · 0 评论 -
力扣每日一题344——反转字符串
文章目录前言一、示例二、思路和代码1.思路2.代码前言题目:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。一、示例二、思路和代码1.思路第一个和最后一个对换,第二个和倒数第二个对换,第三个和倒数第三个对换,以此类推,对换的次数是数组的长度除以2.2.代码代码如下(示例):void reverseString(char* s, int sSi..原创 2022-02-25 23:21:18 · 174 阅读 · 0 评论 -
ANSCII码表
文章目录前言一、ANSCII码表前言转载:http://c.biancheng.net/c/ascii/一、ANSCII码表原创 2022-02-25 15:55:11 · 1372 阅读 · 0 评论 -
力扣每日一题70——爬楼梯
文章目录前言一、示例二、思路和代码1.思路2.代码前言爬楼梯是一道很经典的题目,本文提供两种方法。题目:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?一、示例二、思路和代码1.思路如图所示:第三个是第一个和第二个相加,第四个是第二个和第三个相加。2.代码#if 0int func(int n) { int sum = 0; if(1 == n) { sum = 1;..原创 2022-02-20 14:22:43 · 264 阅读 · 0 评论 -
力扣每日一题203——移除链表元素
移除链表元素文章目录前言一、示例二、思路和代码1.思路2.代码前言题目:给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。一、示例二、思路和代码1.思路运用力扣每日一题——删除链表中的节点的思路,把当前节点的值等于val的删除了,最后还剩一个节点没处理,只能再次遍历链表处理。2.代码代码如下(示例):/** * Definition for singly-linked list.原创 2022-02-18 20:00:26 · 199 阅读 · 0 评论 -
力扣每日一题242——有效的字母异位词
文章目录前言一、示例二、思路和代码1.思路2.代码总结前言题目:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。一、示例二、思路和代码1.思路创建两个数组,数组arr1是用来记录数组s每个单词出现的次数数组arr2是用来记录数组t每个单词出现的次数如果两个数组同时遍历,内容都是一样的话,那就返回true,否则返回false2.代码代码如下(示例):boo..原创 2022-02-18 17:53:54 · 4770 阅读 · 0 评论 -
力扣每日一题258——各位相加
文章目录前言一、示例二、思路和代码1.思路2.代码前言题目:给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。一、示例二、思路和代码1.思路把那个数字的各个位置的数求出来,然后相加得到总数,倘若大于10,则继续把总数的各个位置的数求出来,再相加,直到小于10.2.代码代码如下(示例):int get_val(int n) { int sum = 0, a; while(n) { a = n % 10; ..原创 2022-02-18 17:29:10 · 180 阅读 · 0 评论 -
力扣每日一题——删除链表中的节点
文章目录前言一、示例二、思路和代码1.思路2.代码前言题目:请编写一个函数,用于 删除单链表中某个特定节点 。在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 。题目数据保证需要删除的节点 不是末尾节点一、示例二、思路和代码1.思路2.代码代码如下(示例):/** * Definition for singly-linked list. * struct ListNode { * int val; * s..原创 2022-02-18 17:18:13 · 137 阅读 · 0 评论 -
力扣每日一题——位1的个数
文章目录前言一、示例二、思路和代码1.思路2.代码前言题目:编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)一、示例二、思路和代码1.思路代码如下(示例):每次都与1相“与”后,n都要右移一位,m记录1的个数。2.代码代码如下(示例):int hammingWeight(uint32_t n) { int i, m = 0; for(i = 0; i < 32; i++) { ..原创 2022-02-18 04:11:25 · 4964 阅读 · 0 评论 -
力扣每日一题——2的幂
文章目录前言一、示例二、思路和代码1.思路2.代码前言题目:给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方一、示例二、思路和代码1.思路代码如下(示例):排除不是2的倍数,然后一开始赋值变量为1,一直乘2,如果是2的幂,循环后,会相等。若不是2的幂,则大于参数n,返回false2.代码代码如下(示例):bool isPowerOfTwo(..原创 2022-02-18 03:59:24 · 4678 阅读 · 0 评论 -
力扣每日一题——快乐数
文章目录前言一、示例二、代码前言题目:编写一个算法来判断一个数 n 是不是快乐数。「快乐数」 定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1,那么这个数就是快乐数。如果 n 是 快乐数 就返回 true ;不是,则返回 false 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/happy-number..原创 2022-02-18 01:57:03 · 5172 阅读 · 0 评论 -
力扣每日一题——加一
文章目录前言一、示例二、思路和代码1.引入库2.代码总结前言题目:给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。一、示例二、思路和代码1.引入库此解法是适合新手看的,大神可以不看了。分两大类情况,一类是尾数是9,另外一类不是9不是9的那一类又分两类,一个是全都是9,另外一个是最高位不是9,尾数是9,但不知道有多少个92.代码代码..原创 2022-02-18 01:08:04 · 350 阅读 · 0 评论 -
力扣每日一题——删除有序数组中的重复项
文章目录前言一、示例二、思路和代码1.思路2.代码前言给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k 。不要使用额外的空间,你必须在 原地 修改输入数组 ..原创 2022-02-17 00:30:36 · 869 阅读 · 0 评论 -
力扣每日一题——合并两个有序数组
文章目录前言一、示例二、思路和代码1.思路2.代码前言题目:给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 ..原创 2022-02-16 18:03:26 · 152 阅读 · 0 评论 -
力扣每日一题——最长公共前缀
文章目录前言一、示例:二、代码1.前期工作:引入指针数组概念2.最长公共前缀总结前言题目:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。要想解决本题,首先得知道指针数组的概念是什么。本文是用横向扫描方法解决,算法的思路在代码的注释里面。一、示例:二、代码1.前期工作:引入指针数组概念指针数组简单来说就是有一个数组,这个数组是由很多个指针组成的。①数组的每一个元素都是指针(数组)。②力扣那一题为什么要传进来一个二级指针?是因为指针数组是..原创 2022-02-12 17:55:50 · 1274 阅读 · 0 评论 -
力扣每日一题——罗马数字转整数
文章目录前言一、示例二、代码总结前言题目:罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做 X..原创 2022-02-12 00:45:01 · 152 阅读 · 0 评论 -
力扣每日一题——反转链表
文章目录前言一、示例二、代码总结前言题目:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。一、示例二、代码由于官方的代码难以理解,我参照了官方的思路,然后理解思路以后,自己重新写代码。代码如下(示例):/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct Lis..原创 2022-02-09 00:24:27 · 281 阅读 · 0 评论 -
C语言——宏定义
文章目录前言一、宏定义的一些“暗语”二、代码总结前言本文记录的是在调试当中,需要用到宏定义一、宏定义的一些“暗语”__TIME__ :时间__LINE__ :行号__FILE__ :当前文件\ :换行## :将多个变量串联成一个二、代码代码如下(示例):#include <stdio.h>//#define __DEBUG#ifdef __DEBUG#define EPRINTF(func, fmt, args...) \printf("%..原创 2022-02-07 03:09:47 · 239 阅读 · 0 评论 -
C语言小题目(练手感)
文章目录前言题目1.题目一2.题目二前言记录一些关于C语言的小题目,练练手感题目1.题目一代码如下(示例):#include <stdio.h>int func(int a, int b, int c) { if(b > a && c > b) { return 1; } else if(b > c && a > b) { return 1; } return 0;}int main(voi..原创 2022-02-06 22:02:59 · 527 阅读 · 0 评论 -
力扣每日一题——相交链表
文章目录前言一、示例二、代码和结果1.代码2.结果参考前言给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。一、示例二、代码和结果1.代码代码如下(示例):/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; ..原创 2022-02-02 00:41:12 · 685 阅读 · 1 评论 -
力扣每日一题——移动零
文章目录前言一、示例二、代码前言给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。一、示例二、代码代码如下(示例):void moveZeroes(int* nums, int numsSize){ //遍历非0元素, 先覆盖,后补0 int i, j = 0; for(i = 0; i < numsSize; i++) { if(num..原创 2022-01-28 00:58:07 · 153 阅读 · 0 评论 -
力扣每日一题—— 比特位计数
文章目录前言一、例子二、思路与代码1.思路2.代码前言给你一个整数 n ,对于 0 <= i <= n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n + 1 的数组 ans 作为答案。一、例子示例:二、思路与代码1.思路先把计算一个数的二进制有多少个1的函数写出来,然后套进目标函数2.代码代码如下(示例):/** * Note: The returned array must be malloced, assume caller call..原创 2022-01-20 21:03:24 · 313 阅读 · 0 评论 -
力扣每日一题——找到所有数组中消失的数字
文章目录前言一、例子二、思路与代码1.思路2.代码前言给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果来源:力扣(LeetCode)一、例子示例:二、思路与代码1.思路根据题意,设立两个指针,一个是答案数组arr,用作返回;另外一个数组是flag_arr记录原数组出现过数字对应的位置就+1,如果那个数组一直没出现过,就一直是0.比如说,原数组出..原创 2022-01-20 01:13:05 · 463 阅读 · 0 评论 -
力扣每日一题——环形链表
文章目录前言一、示例二、解题方法1.方法一(常识)2.方法二(快慢指针)前言题目描述:给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false..原创 2022-01-18 00:37:39 · 100 阅读 · 0 评论 -
力扣每日一题15——从尾到头打印链表
文章目录前言一、示例二、代码结果前言题目描述:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。一、示例二、代码代码如下(示例):/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; *//** * Note: The returned array must be malloced..原创 2022-01-03 16:23:23 · 496 阅读 · 0 评论 -
力扣每日一题14——数组中重复的数字
文章目录前言一、示例二、代码1.腊鸡代码(暴力)2.标准解法代码前言找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。来源:力扣(LeetCode)一、示例二、代码1.腊鸡代码(暴力)代码如下(示例):int findRepeatNumber(int* nums, int numsSize){ int i, j..原创 2022-01-02 19:59:39 · 527 阅读 · 0 评论 -
力扣每日一题13——替换空格
文章目录前言一、示例二、代码结果前言请实现一个函数,把字符串 s 中的每个空格替换成"%20"。一、示例二、代码代码如下(示例):char* replaceSpace(char* s){ //先算出字符串的长度 int i = 0, j = 0, cnt = 0, len = strlen(s); //算出有多少个空格 for(i = 0; i < len; i++) { if(s[i] == ' ') { ..原创 2021-12-19 01:53:46 · 92 阅读 · 0 评论 -
力扣每日一题12——移除元素
文章目录前言一、示例二、代码前言给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素一、示例二、代码代码如下(示例):int removeElement(int* nums, int numsSize, int val){ int i, j = 0; for(..原创 2021-12-08 00:02:05 · 480 阅读 · 0 评论 -
力扣每日一题11——回文数
文章目录前言一、示例二、代码前言给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是来源:力扣(LeetCode)一、示例二、代码代码如下(示例):bool isPalindrome(int x){ int y = x; long temp = 0; if(x < 0){ return false..原创 2021-12-03 12:31:45 · 330 阅读 · 0 评论