C
Dr_Haven
爱学习,爱编程,爱咖啡也爱可乐;
爱挑战,爱专研,也爱玩游戏;
爱晚起,也爱工作到深夜;
擅长技术,也崇尚简单和懒惰;
神秘而孤僻,沉默而爱憎分明;
我行我素。
展开
-
C排序算法:(三)插入排序
像打扑克牌一样,每次摸一张牌,把牌插入正确位置。#include <stdio.h>void Insert_Sort_Small_To_Big(unsigned char* input_data, unsigned int input_length){ int i = 0, j = 0; unsigned char temp = 0; for (i = 1; i < input_length; i++) { temp = inpu原创 2021-06-07 16:26:57 · 81 阅读 · 0 评论 -
C排序算法:(二)冒泡排序
冒泡排序就是从左至右比较相邻的两个数值大小,如果右侧的数值较小,则交换两个数值的位置,较大的数值就会像泡泡一样一路向右漂浮。#include <stdio.h>//small to bigvoid Bubble_Sort(unsigned char *input_data, unsigned int input_length){ unsigned int i = 0, j = 0; unsigned char temp = 0; for (i = 0; i原创 2021-06-07 15:14:06 · 124 阅读 · 0 评论 -
C排序算法:(一)直接排序
干原创 2021-06-07 14:40:00 · 917 阅读 · 0 评论 -
C学习杂记(七)extern声明可省略变量类型
工作三年,看C的书也不少。第一次知道extern可以省略变量类型。b.c有一个全局变量unsigned int data_length,a.c想要调用它,通常使用:externunsigned int data_length;在声明时可以把外部变量类型去掉:extern data_length;虽然这样使用合法,但是违背代码规范,可阅读性差,不建议这样使用。这样的使用方法与编...原创 2019-05-31 10:35:56 · 1570 阅读 · 0 评论 -
C学习杂记(六)%2.0f打印输出宽度
%m.nf,m表示整个浮点数的输出宽度,n表示小数输出宽度。1、printf("%f\n", 12.34); 输出为12.340000。2、printf("%2.0f\n", 12.34); 输出为12。3、printf("%2.1f\n", 12.34); 输出为12.3。4、printf("%2.2f\n", 12.34); 输出为12.34。5、p...原创 2019-05-17 22:06:42 · 2745 阅读 · 0 评论 -
C学习杂记(五)形参实参笔试题
大意失荆州不要以为简单就轻视,谨慎,细节,基础。一、有以下程序#include <stdio.h>typedef struct {int b, p;} A;void f(A c){ c.b += 1; c.p += 2;}void main(void){ A a = {1, 2}; f(a); printf...原创 2019-05-17 20:44:54 · 1331 阅读 · 1 评论 -
C学习杂记(四)sizeof计算联合体大小
#include <stdio.h>union u1{ char a[13]; int b;};int main(void){ printf("%d\n", sizeof(u1)); return 0;}结果为16。联合体的大小取决于它所有的成员中占用空间最大的一个成员的大小。u2最大的空间是char[13],但是因为另一个成...原创 2019-05-01 14:48:55 · 519 阅读 · 0 评论 -
C学习杂记(三)笔试题:字符串大小写字母切换
字符串大小写转换,大写转小写, 小写转大写#include <stdio.h>#include <string.h>int tramsform(char str[]){ int i = 0; int strLen = strlen(str); for(i = 0; i < strLen; i++) { ...原创 2019-05-01 14:36:39 · 473 阅读 · 0 评论 -
C语言开发笔记(八)static
在C语言中,static有3个作用:(1)在函数体,一个被声明为静态的变量在这一函数体内被调用的过程中维持其值不变。#include <stdio.h>void test(void){ static int i = 0; printf("%d\n", i++);}int main(void){ test(); test();...原创 2019-05-01 14:07:13 · 336 阅读 · 0 评论 -
C语言开发笔记(七)const和指针
const修饰变量是常用的,不容易犯错,而const和指针一起使用时很容易混淆。(一)const int *p#include <stdio.h>int main(void){ int a = 10; int b = 20; const int *p = &a; *p = b; return 0;}const在...原创 2019-05-01 13:27:34 · 171 阅读 · 0 评论 -
C学习杂记(二)笔试题:不使用任何中间变量如何将a、b的值进行交换
常见的方法如下void swap1(int *a, int *b){ int temp = *a; *a = *b; *b = temp;}不使用中间变量的方法void swap2(int *a, int *b){ *a = *a + *b; *b = *a - *b; *a = *a - *b;}这种方法是不可取...原创 2019-05-01 11:26:04 · 365 阅读 · 0 评论 -
C学习杂记(一)常见误会
一、sizeof是关键字,不是函数。二、strlen是函数。原创 2019-04-22 14:29:46 · 231 阅读 · 0 评论 -
C语言开发笔记(六)实参和形参
举例说明#include <stdio.h>void swap(int x, int y){ int temp = 0; temp = x; x = y; y = temp;}int main(void){ int a = 1, b = 2; swap(a, b); printf("a=%d,...原创 2018-09-21 14:44:45 · 402 阅读 · 2 评论 -
C语言开发笔记(五)字符串常量
#include <stdio.h>#include <string.h>int main(void){ char *str = "sting"; strcpy(str, "hello"); printf("%s\n", str); return 0;}代码为什么会运行错误,异常退出?这段代码是新手常见错误之一。...原创 2018-09-21 11:54:55 · 254 阅读 · 0 评论 -
C语言开发笔记(四)获取整数的个十百千位
#include <stdio.h>int main(void){ unsigned int number = 0; unsigned int single_digit = 0; unsigned int ten_digit = 0; unsigned int hundreds_digit = 0; unsigned int thousands_digit = 0;...原创 2018-09-18 12:09:55 · 5735 阅读 · 0 评论 -
C语言开发笔记(三)自加和自减
看到一段代码,被坑了。#include <stdio.h>int main(void){ int a = 7; printf("%d\n", a++); printf("%d\n", a--); printf("%d\n", -a++); printf("%d\n", -a--); printf("%d\n", a); ...原创 2018-09-18 11:55:33 · 880 阅读 · 0 评论 -
C语言开发笔记(一)自动转换和强制转换
整型数据和实行数据之间可以进行运算,而且字符型数据可以和整型数据通用,所以整型、实型、字符型数据之间也是可以进行运算的,但在运算处理之前,不同类型的数据要事先转换成同一种数据类型。转换方法有两种:自动转换和强制转换。(1)自动转换原则:1、若参与运算量的类型不同,则先转换成同一类型,然后进行运算;2、转换按数据长度增加的方向进行,以保证精度不降低。如int型和lon...原创 2018-09-18 11:09:21 · 837 阅读 · 0 评论 -
C语言开发笔记(二)volatile
volatile常用于多线程共享资源和嵌入式软件的中断。(一)嵌入式软件中断中volatile的应用volatile unsigned short g_timer3_count = 0;void TIM3_IRQHandler(void){ if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) { ...原创 2018-09-17 14:19:29 · 556 阅读 · 0 评论