C语言
qq_27182175
这个作者很懒,什么都没留下…
展开
-
C语言位操作
位操作清零连续多位清零置位取反清零1//定义一个变量 a = 1001 1111 b (二进制数)2 unsigned char a = 0x9f;3 //对 bit2 清零4 a &= ~(1<<2);5//括号中的 1 左移两位, (1<<2)得二进制数: 0000 0100 b6//按位取反, ~(1<<2)得 1111 1011 b7//假如 a 中原来的值为二进制数: a = 1001 1111 b8//所得的数与 a 作”位与&am原创 2021-10-24 23:01:30 · 404 阅读 · 0 评论 -
关于算法的一些基础知识
算法的特点总结总结总结1.有效性,算法中的每一个步骤都应该能有效执行,并得到确定的结果2.确定性,每一个步骤都应该是确定的,不应该含糊不清3.有穷性,包含有限的步骤4.有0或者多个输入,输入指的是执行算法时从外界获取的信息5.有1或者多个输出...原创 2020-12-24 15:03:22 · 167 阅读 · 0 评论 -
C语言数组知识汇总
数组1.一维数组2.二维数组3.指针数组4.指向数组的指针5.函数指针数组6.动态数组7.字符数组8.字符指针数组9.变长数组10.结构体数组1.一维数组访问一维数组的四种方式int a[10]={1,2,3,4,5,6,7,8,9,10};1.下标法a[i]2.*(a+i)3.int *p=a;p[i]4.*(p+i)2.二维数组int a[3][4]={1,2,3};//或者大括号里面再按行初始化加括号。第一个下标可以省略3.指针数组int *array[5];表示存放了5个原创 2022-02-10 19:31:34 · 610 阅读 · 0 评论 -
(一)链表学习之简单链表基本认识
1.简单静态链表定义struct Node{int num;struct Node *pNext};int main(){ struct Node *p=NULL;//定义头指针指向节点 struct Node n1,n2,n3,n4,n5; n1.num=1; n2.num=2; n3.num=3; n4.num=4; n5.num=5; p=&n1; n1.pNext=&n2;//实现链表的串联 n2.pNext=&n3; n3.pNext=&原创 2021-05-12 16:28:21 · 229 阅读 · 0 评论 -
约瑟夫环问题
用链表是最好的//用于标记人员是否出列,0没有出列,1出列unsigned char flag[20];//按出列顺序记录人员编号unsigned char result[20];//起始人员编号,n总人数,m报数上限int joseph(int start, int n, int m){ int i = 1; int k = start; while (1) { if (flag[k] != 1)//跳过出列人员 { if (i == m) return k;/原创 2021-01-21 09:01:58 · 89 阅读 · 0 评论 -
6174问题
#include<stdio.h>#include<stdlib.h>void select_sort(int data[], int len){ for (int i = 0; i < len; i++) { for (int j = i + 1; j < len; j++) { if (data[i] > data[j]) { int temp = data[i]; data[i]=data[j];原创 2021-01-21 08:57:18 · 113 阅读 · 0 评论 -
(二)链表学习之模块化处理
动态链表1.动态链表概念2.动态链表操作接口2.1数据结构定义2.1添加节点2.2显示节点数据2.3逆转节点2.4查找节点2.5查找并修改节点数据2.6获取节点个数2.7删除所有节点2.7删除指定节点2.8根据节点,头部插入2.8根据节点,尾部插入2.9节点排序2.10主程序1.动态链表概念动态链表就是由malloc分配内存2.动态链表操作接口2.1数据结构定义struct Student { int num;//编号 float score;//成绩 struct Student* nex原创 2021-01-15 16:54:33 · 178 阅读 · 0 评论 -
递归算法分析
递归算法分析1.斐波那契数列(Fibonacci sequence)1.1斐波那契数列定义1.2递归实现1.3时间复杂度分析1.斐波那契数列(Fibonacci sequence)1.1斐波那契数列定义F(n)=n (n=0,1)F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)1.2递归实现int fib(int n){ if(n<2) return n; else return fib(n-1)+fib(n-2);}int main(void){原创 2020-12-20 17:47:04 · 79 阅读 · 0 评论 -
嵌入式C语言笔试题目集锦
1.用预处理指令#define 声明一个常数,用以表明 1 年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL//1.括号的使用 2.无需写出具体数值,反而代码更清晰 3.UL表示无符号长整型,防止在16位机上溢出2 . 写一个"标准"宏 MIN ,这个宏输入两个参数并返回较小的一个#define MIN(A,B) ((A) <= (B) ? (A) : (B))//整个替换,外层加个大括号//每一部分都括起来,并且不原创 2020-10-24 17:45:29 · 1343 阅读 · 0 评论 -
sourceinsight使用教程
如何新建工程1.新建文件夹,存放工程2.打开软件,点击project->new project 弹出如下所示页面,分别为工程名,存放路径。3.进入下一步4.添加文件然后弹出添加文件对话框然后点击确定,因为没有添加任何文件,所以会有提示5.新建文件点击保存文件(crtl+s),存放到work目录下基本设置1.View->Panels->Project File List 可以在右侧看到全部文件,如果右边没有,点击快捷键的P2.Options->原创 2020-05-08 17:59:22 · 947 阅读 · 0 评论 -
vscode新建工程
一.在windows下新建项目1.在桌面新建文件夹,命名test2.打开vsc,选择打开文件,选择test3.将工作区另存为,还是选择test,此时会生成test.code-workspace4.在vsc里面新建文件夹,取名.vscode,用来管理工程文件,在这里面建文件夹,在文件夹里面存放代码...原创 2019-10-25 15:39:14 · 10156 阅读 · 5 评论 -
内存对齐问题
1.什么是内存对齐,先看下面一段程序,运行环境为VS2017其运行结果为:由此可知以下几点:1.变量都存放在偶数开头的地址 2.结构体大小不是结构体各元素大小的简单相加 3.默认对齐2.如何避免内存对齐带来的影响内存对齐会牺牲一点存储空间,对于上述例子中,可以把char c提到char a后面可避免内存对齐影响,保证自然对齐3.除此之外还可以用#pragma pack(n) ...原创 2019-10-09 15:07:58 · 240 阅读 · 0 评论 -
(三)链表分类
1.简介链表作为C语言中的一种基础数据结构,在我们日常开发中用的不多,但是在操作系统里面是随处可见。链表好比一个原型的晾衣架,上面有很多钩子,狗子首尾相连。链表也是,链表由节点(node)组成,节点之间首尾相连。2.链表分类2.1单向链表:前一个结点都有一个箭头指向后一个节点,首尾相连,组成一个圈。节点本身必须包含一个节点指针,用于指向下一个节点,同时还可以携带数据2.2双向链表3....原创 2019-09-29 16:03:52 · 2300 阅读 · 0 评论 -
常量指针与指针常量
1.指针常量,指针p不能指向别的地方2.常量指针,我觉得应该叫做指向常量的指针3.指向常量的常指针,指针和变量都不能改变4.记忆法:原创 2019-09-25 17:12:12 · 116 阅读 · 0 评论