C语言是怎样炼成的
文章平均质量分 80
关于嵌入式学习的C语言知识
嵌入式小白—小黑
嵌入式小白一名,将在CSDN上分享自己的学习经历,面试经历和工作经历。
展开
-
【C语言】常用的库和作用以及对应的函数
这只是一些常见的C标准库,还有其他许多用途广泛的库,如网络编程库。根据不同的需求,可以选择合适的库来使用相应的函数。原创 2023-08-11 08:00:00 · 9363 阅读 · 4 评论 -
【C语言】二分查找算法代码介绍
二分法查找是一种在有序数组中查找目标元素的高效算法。它的原理是通过将数组不断地分成两半,然后确定目标元素在哪一半中,从而缩小查找范围,直到找到目标元素或者确定目标元素不存在为止。原创 2023-08-07 08:30:00 · 11443 阅读 · 12 评论 -
【C语言】一个简单的C语言例子,判断一个数是否为2的幂,延伸出使用c语言实现二进制和十进制的相互转换
在嵌入式面试中可能会遇到一道进制转换的题目,因为嵌入式很多操作都涉及到位运算,而且对二进制的使用频率也是特别高的,所以我们理应将一些进制转换的实现和位运算弄清楚。原创 2023-07-28 12:16:46 · 11291 阅读 · 1 评论 -
【C语言】解析C语言实现排序的算法(冒泡排序、插入排序、选择排序、快速排序、归并排序)
冒泡排序是一种简单但效率较低的排序算法,在处理小型数据集时比较适用。通过重复交换相邻元素实现排序,冒泡排序的时间复杂度为O(n^2)。插入排序是一种简单但有效的排序算法,适用于小规模数组或部分有序的情况。它的时间复杂度为O(n^2),可以稳定地将数组排序。选择排序是一种简单但效率较低的排序算法,适用于数据量较小的情况。它的时间复杂度为O(n^2),可以稳定地将数组排序。快速排序是一种高效且常用的排序算法,它的平均时间复杂度为O(nlogn),在大多数情况下可以快速地将数组排序。原创 2023-07-23 23:42:45 · 11273 阅读 · 8 评论 -
【C语言】一次讲清楚auto、static、registe、extern、const、volatile这些存储有关的关键字
`auto`关键字用于声明自动存储变量,它是默认的存储类别。- `static`关键字用于限制变量的作用域或延长变量的生命周期。- `register`关键字指示编译器将变量存储在寄存器中,但现代编译器已经智能地处理这个问题。- `extern`关键字用于声明在其他源文件中定义的全局变量或函数。- `const`关键字用于定义常量,表示其值不能被修改。- `volatile`关键字用于标记变量可能以意外的方式被改变,例如通过硬件或多线程环境中的其他线程。原创 2023-07-19 22:37:44 · 11423 阅读 · 4 评论 -
【C语言】深入理解C语言链表
链表是一种常见的数据结构,广泛应用于计算机科学中。C语言提供了丰富的指针操作,使得链表的实现相对简便。本博客将介绍链表的基本概念,以及使用C语言实现链表的代码示例。原创 2023-07-18 10:16:50 · 11402 阅读 · 15 评论 -
【C语言】一个简单的C语言例子,判断一个数是否为2的幂
在main函数中,我们通过用户输入一个数,并调用isPowerOfTwo函数来判断该数是否是2的幂次方,然后输出相应的结果。如果输入的数是2的幂次方,比如输入1、2、4、8等,输出结果会显示该数是2的幂次方;否则输出结果会显示该数不是2的幂次方。所以现在我们可以判断,如果二进制中只有一个1,其他位都是0,则这个数就是2的幂次方;函数接受一个整数作为参数,使用位运算判断该数是否是2的幂次方。,这个条件表示num的二进制表示中只有一位是1,其他位都是0。则15-1=14的二进制为:1110。原创 2023-07-16 15:01:18 · 12099 阅读 · 24 评论 -
【C语言】深入解析C语言中的回调函数及其应用
回调函数的概念可能有些抽象,让我们尝试用一个简单的生活场景来解释它。假设你有一项重要任务需要完成,但任务的一部分要依赖于其他人完成的工作。你可以留下一个手机号码,当对方完成任务后,他们会给你打电话通知你。在这个场景中,你的手机号就是回调函数,你留给对方的方式告诉他们完成任务后与你联系。原创 2023-07-15 22:54:11 · 12660 阅读 · 12 评论 -
【C语言】从预处理到机器代码的C语言编译过程解析
使用`#define`指令可以创建宏定义,用于表示一个常量、一个代码片段或一个函数。预处理器会根据宏定义的内容,在代码中进行替换。原创 2023-07-13 21:30:02 · 11152 阅读 · 13 评论 -
【C语言】scanf和strcpy这类关键字和函数为什么不安全,使用VS编译会报错
C4996 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.解决方法:在程序最顶端加入这个代码段#define_CRT_SECURE_NO_WARNINGS原创 2023-07-09 10:27:54 · 14477 阅读 · 31 评论 -
【C语言】编织程序的艺术:联合体、结构体和枚举的优雅妙用
在 C 语言中,联合体(union)、结构体(struct)和枚举(enum)是用于组织和管理数据的重要概念。它们可以帮助我们有效地表示和操作复杂的数据结构。本文将介绍联合体、结构体和枚举的概念、语法和用法,以帮助读者更好地理解它们的作用和优势。原创 2023-07-07 10:51:45 · 11196 阅读 · 12 评论 -
【C语言】内存分配与区域
代码区主要用于存储程序的指令,而变量和数据则存储在数据区、堆区、栈区或者BSS区中,具体取决于变量的类型和声明方式。值得注意的是,BSS区的变量不占用可执行文件的实际空间,只是占用了可执行文件的大小,加载到内存时进行的动态分配。在C语言中,内存的分配是一个重要的主题。在上面的示例中,我们使用malloc()函数动态地分配了4个整数大小的内存空间,并在程序结束时使用free()函数释放了这部分内存。需要注意的是,代码区是只读的,不能在程序运行时修改其中的指令。它是只读的,其中的指令按顺序逐条执行。原创 2023-07-05 17:02:07 · 11279 阅读 · 8 评论 -
【C语言】sizeof与strlen的区别
`sizeof` 用于计算对象或数据类型在内存中所占的字节数,而 `strlen` 用于计算字符串的长度(不包括结束符)。总的来说总结:`sizeof` 用于计算内存大小,`strlen` 用于计算字符串长度(不包括结束符)。原创 2023-07-03 09:54:02 · 11670 阅读 · 0 评论 -
【C语言】typedef与define的区别
在C语言中,typedef和define是两个常用的关键字,用于为数据类型和预处理宏定义起别名。然而,它们在作用范围、处理方式和类型安全性等方面存在一些重要的区别。本文将详细介绍typedef和define的区别,帮助读者更好地理解并正确使用它们。原创 2023-07-02 10:48:23 · 14074 阅读 · 17 评论 -
【C语言】解析C语言中的NULL指针——理解与应用
在C语言中,NULL是一个非常重要的概念,它代表着一个空指针或者无效的指针。理解和正确使用NULL指针在C语言编程中至关重要。本篇博客将深入探讨NULL指针的本质、使用方式以及相关的注意事项,希望能为读者提供对NULL指针的全面理解。原创 2023-07-01 17:57:01 · 13994 阅读 · 0 评论 -
【C语言】一文搞懂C语言的函数
C语言是一种广泛使用的编程语言,在C语言中,函数是一项关键概念。本文将深入探讨C语言的函数,包括函数的定义、参数传递、返回值和常见的函数类型。通过这篇文章,你将能够全面理解C语言中的函数的概念和使用方法。原创 2023-06-30 22:22:00 · 11170 阅读 · 0 评论 -
【C语言】一文搞懂malloc()、free()、new()、delete()
malloc`是C语言中的一个标准库函数,用于在堆(heap)上分配指定字节数的内存空间。该函数接受一个`size_t`类型的参数`size`,表示要分配的字节数(即所需内存空间的大小)。它返回一个指向分配的内存空间的指针,如果分配失败,则返回`NULL`。`malloc`函数动态地在堆上分配内存空间,这意味着分配的内存空间在程序运行时可用,并且不会受到局部变量的生命周期的限制。你可以使用指针来操作所分配的内存空间。原创 2023-06-30 17:26:29 · 11353 阅读 · 0 评论 -
【C语言】一文搞懂C语言中堆和栈的区别
栈是一种线性数据结构,存储在计算机内存的栈区,它采用了一种"先进后出"(Last-In-First-Out,LIFO)的原则。堆是一种动态分配的内存区域,存储在计算机内存的堆区,它的分配和释放是由程序员来管理的。原创 2023-06-30 15:10:21 · 12459 阅读 · 0 评论 -
【C语言】一文搞懂C语言中的|、||、&、&&
需要注意的是,在使用逻辑与运算符&&时,如果第一个表达式已经为假(0),则不再计算和评估第二个表达式,因为只有两个表达式都为真时,整个表达式才会为真。在上述示例中,'||'符号用于判断两个表达式的逻辑或关系,如果a或b中至少有一个大于0,则执行if语句块内的代码。需要注意的是,在使用逻辑或运算符||时,如果第一个表达式已经为真,则不再计算和评估第二个表达式,因为只需要其中一个表达式为真就会返回真值。在C语言中,||是逻辑或运算符,用于判断两个表达式的逻辑或关系。在C语言中,&& 是逻辑与运算符。原创 2023-06-29 11:05:13 · 20326 阅读 · 5 评论 -
【C语言】一文概括所有C语言中各数据类型的大小
关于c语言里面数据类型大小最全摘录,带验证代码。原创 2023-06-28 23:43:55 · 14181 阅读 · 2 评论 -
【C语言】C和C++中的左值、右值、纯右值、将死值
左值(lvalue)和右值(rvalue)是C语言和C++语言中的概念。它们用于描述表达式中的值的性质。但是,请注意左值和右值在C语言和C++语言中的处理方式有一些差异。原创 2023-06-28 23:19:54 · 11074 阅读 · 2 评论 -
【C语言】getchar()和putchar()函数
getchar()函数返回一个整数值,对应读取的字符。如果在读取输入时发生错误或到达文件末尾,则返回EOF。使用getchar()函数,您可以编写简单的代码来读取用户输入的字符并将其输出到控制台。原创 2023-06-25 16:05:37 · 11523 阅读 · 0 评论 -
【C语言】学习C语言过程中的琐碎知识点,持续更新中......
C语言标准库中的输入输出函数库中的文件操作有关的函数都是被放在一个名为"stdio"的头文件中。"stdio"是"Standard Input/Output"的缩写,标准输入输出库的英文名为Standard I/O Library,它提供了C语言程序与计算机外部环境进行交互的接口,例如从键盘读入数据和向屏幕输出数据。因此,stdio 是一个很常用的 C 语言头文件。原创 2023-06-25 15:28:37 · 11331 阅读 · 0 评论 -
【C语言】EOF在C语言中的用法
EOF在C语言中是"End of File"(文件结束)的缩写。它是一个预定义的常量,它表示文件结束的标志。当文件读取到此标志后,读取函数将返回一个特殊的值。在C语言中,EOF的值通常为-1。该值表示结束标志,用于表示不同平台上结尾标志的差异。当从文件中读取而没有更多可读取的内容时,EOF常量会被返回,以指示读取已完成。EOF常量在C语言的许多标准库函数中使用,如fgetc、fgets、scanf和getc等。原创 2023-06-25 15:34:06 · 14307 阅读 · 0 评论 -
【C语言】强制转换
常规的数据类型强制转换,加入指针后,地址,函数等等的强制转换细节和示例程序原创 2023-06-25 10:43:49 · 19086 阅读 · 6 评论 -
【C语言】宏的#和##的区别和用法
嵌入式面试经常会遇到的问题,有关#和##在使用上的作用有什么不同原创 2023-06-20 11:24:26 · 11814 阅读 · 0 评论 -
【C语言】关键字volatile的作用是什么
`volatile`是一个C/C++关键字,它用于告诉编译器当前变量是易变的,需要在每次使用时都从内存中重新获取值,而不是使用缓存中的旧值。原创 2023-06-20 16:25:46 · 13300 阅读 · 2 评论 -
【C语言】关键字static的作用是什么
static关键字在c语言中的作用主要有修饰变量,修饰函数和静态断言原创 2023-06-20 20:33:57 · 11170 阅读 · 0 评论 -
【C语言】extern关键字的作用
关键字extern的作用是声明一个变量或函数具有外部链接性,可以被外部文件使用原创 2023-06-20 21:28:05 · 15592 阅读 · 1 评论