
C杂烩记录篇
文章平均质量分 84
记录一下写C的过程中,遇到过的问题及知识等
诺谦
热爱生活 活在当下
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C-printf实现
void myprintf(const char *format,...){ va_list argptr;//参数列表 va_start(argptr, format); size_t ACTSIZE = _vscprintf(format, argptr);//内容长度,根据它给size赋值 char*buffer = (char*)malloc(ACTS...原创 2020-12-12 15:35:00 · 246 阅读 · 0 评论 -
C-sizeof和strlen区别,以及sizeof如何计算结构体大小
sizeof和strlen区别sizeof是关键字,在编译时就能计算出值,可以计算任何类型strlen是函数,只有在运行时才能去计算,且只能计算字符型的.对于数组时,strlen是判断’\0’为标志结尾的,而sizeof则计算的是数组整个空间示例如下:char buf1[]="abcde";char buf2[30]="ABC";printf("buf1: %d %d\n",s...原创 2019-02-16 00:15:00 · 150 阅读 · 0 评论 -
C-Linux_毫秒级随机值获取
秒级随机值-常用方法:#include <stdlib.h>#include <stdio.h>#include <stdio.h>#include <time.h>int main(void){int buf[10],i,j;srand((unsigned)time(NULL));for(i=0; i<10; i++...原创 2019-01-17 17:19:00 · 234 阅读 · 0 评论 -
C-Linux_定时器示例使用
#include <stdlib.h>#include <signal.h>static int count = 0;static struct itimerval oldtv;struct itimerval itv;void set_timer(){ itv.it_interval.tv_sec = 0; itv.it_...原创 2019-01-17 16:43:00 · 239 阅读 · 0 评论 -
C-switch case之如何巧妙判断范围区域
当判断整数时示例: 判断整数范围#include <stdio.h>int main(){ unsigned char buf[6]={0x00,0x07,0x11,0x60,0x61,0x66}; for(int i=0;i<6;i++) switch(buf[i]) { case 0x00 ....原创 2018-12-11 12:31:00 · 1377 阅读 · 0 评论 -
C- unsigned :1之位域分析
1.首先回忆结构体我们都知道定义一个结构体可以这样的方式定义:struct Point { float x; float y;} point; //等价于: struct Point point;除此之外,如果不想声明结构体,只想定义结构体的话,还可以这样:struct { float x; floa...原创 2018-09-20 11:47:00 · 500 阅读 · 0 评论 -
C-open,fopen,fwrite,fread,fseek,fgets,popen,access笔记
FILE * fopen(const char * path,const char * mode);所需库:<stdio.h>返回值FILE是C语言定义的标准数据结构,如果open()失败,则返回NULLpath路径mode打开模式,包括有以下几种r 以只读方式打开文件,该文件必须存在。r+ 以读/写方式打开文件,该文件必须存在。r...原创 2018-08-09 19:19:00 · 382 阅读 · 0 评论 -
C语言异常处理之 setjmp()和longjmp()
异常处理之除0情况相信大家处理除0时,都会通过函数,然后判断除数是否为0,代码如下所示:double divide(doublea,double b){ const double delta = 0.00000000001; //由于浮点数不精确,所以需要定义个很小的数 if(!((-delta<b)&&(b<delta)...原创 2018-04-13 15:18:00 · 116 阅读 · 0 评论 -
LeetCode-391. 完美矩形(使用C语言编译,详解)
链接:https://leetcode-cn.com/problems/perfect-rectangle/description/题目我们有 N 个与坐标轴对齐的矩形, 其中 N > 0, 判断它们是否能精确地覆盖一个矩形区域。每个矩形用左下角的点和右上角的点的坐标来表示。例如,一个单位正方形可以表示为 [1,1,2,2]。( 左下角的点的坐标为 (1, 1) 以及右上角的点的...原创 2018-03-31 17:05:00 · 326 阅读 · 0 评论 -
LeetCode-101.对称二叉树
链接:https://leetcode-cn.com/problems/symmetric-tree/description/给定一个二叉树,检查它是否是它自己的镜像(即,围绕它的中心对称)。例如,这个二叉树[1,2,2,3,4,4,3]是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个[1,2,2,null,3,null,3]...原创 2018-03-30 09:18:00 · 102 阅读 · 0 评论 -
C-指针,二级指针,二维数组作为函数参数使用,指针数组,C语言链表(详解)
一级指针int *p; //表示定义一个int型(4字节)的指针p&p //表示p自身的地址位置p //表示p指向的地址位置(也就是p变量的值)*p //表示p指向的地址里面的内容所以 * 的作用: p变量的值作为地址,去访问这个地址的内容二级指针i...原创 2018-03-13 21:20:00 · 315 阅读 · 0 评论 -
C常用函数
clock()头文件 #include <ctime>获取当前时钟计数,一般都是ms为单位,也可以通过CLOCKS_PER_SEC宏计算当前second时间,比如:printf("%d",clock()/CLOCKS_PER_SEC);sin()函数sin的参数是使用弧度制的,需要将角度转换成弧度比如使用简单的带参宏:#define j2h(x) (3.1415...原创 2018-03-10 16:45:00 · 117 阅读 · 0 评论 -
BFS-九宫格重排(详解)
BFS将近两年没练过题了,今天重新回忆下以前刷的蓝桥杯题:九宫格重排样例输入123456780 //初始状态123046758 //终点状态 样例输出3 //最短步数样例输入135246780 //初始状态467581230 //终点状态样例输出22 //最短步数思路以下图为例,空......原创 2018-03-08 19:38:00 · 525 阅读 · 0 评论 -
C函数指针介绍
1.首先来讲讲函数其实每个函数名,都是函数的入口地址,如下图所示:其中0x4013B0就是上图的func()函数的入口地址,从上图可以看到,func和&func的地址都一样,所以&对于函数而言,可以不需要2.接下来便使用函数指针来指向上面func()函数实例1如下:#include "stdio.h"int func(int x){ return x;...原创 2018-02-13 19:35:00 · 85 阅读 · 0 评论 -
快速排序(详解)
描述:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序的平均时间复杂度为O(NlogN),是冒泡排序的一种改进版。方法:快速排序主要采用“二分”的思想,步骤如下:1) 设置两个变量i、j,排序开始的时候:i=0,j=n-1;...原创 2017-09-26 16:01:00 · 113 阅读 · 0 评论 -
动态规划-数正方形(详解)
描述:晓萌有一个N×N的的棋盘,中间有N*N个正方形的1×1的格子,他随机在棋盘上撒上一些棋子(假设全部正好落在各个格子里)。他希望知道,当前的棋盘上有多少个不包含棋子的,由至少四个1×1的格子组成的正方形(正方形之间可以有重叠的部分)。输入第1行为棋盘的边长N,第2行-第N+1组成一个每行有N个数字的棋盘,其中数字0表示这个格子内有棋子,1表示这个格子内没有棋子。(2≤N≤250)输出...原创 2017-09-19 09:46:00 · 336 阅读 · 0 评论 -
贪心算法-跳跃游戏二
给定一个非负整数数组,假定你的初始位置为数组第一个下标。数组中的每个元素代表你在那个位置能够跳跃的最大长度。你的目标是到达最后一个下标,并且使用最少的跳跃次数。例如:A=[2,3,1,1,4],到达最后一个下标的最少跳跃次数为2。(先跳跃1步,从下标0到1,然后跳跃3步,到达最后一个下标。一共两次)输入格式第一行输入一个正整数 n(1≤n≤100),接下来的一行...原创 2017-09-18 23:59:00 · 219 阅读 · 0 评论 -
C语言笔记
当函数前面加上static时,表示该函数仅在本文件里被调用,不会与其它文件相同函数发生冲突调用库的头文件使用<>,调用自己创建的头文件使用""memsetmemset对于强制转换类型不同的指针,赋值是有误的例如:#include "stdio.h" #include "string.h"int main(){unsigned char s[4]={0x12...原创 2017-07-15 17:19:00 · 1593 阅读 · 0 评论