- 博客(15)
- 收藏
- 关注
原创 C语言位段
C语言中的位段(Bit-fields)是一种允许在结构体(struct)中存储少于一个字节的数据的特殊声明方式。它们非常适合需要直接操作内存位的场合,比如硬件寄存器访问、数据压缩或优化存储空间的场景。位段通过在结构体成员后面指定其宽度(以位为单位)来定义,这个宽度不是成员类型的自然大小,而是由程序员指定。
2024-08-06 20:04:45
497
原创 浅谈C语言中结构体,枚举,联合体
结构体是一种复合数据类型,它允许将多个不同类型的数据项组合成一个单一的类型。结构体定义了一个模板,可以根据这个模板创建多个变量(称为结构体变量),这些变量包含结构体中定义的所有数据项(称为成员)。int id;枚举是一种用户定义的类型,用于为整数常量赋予易于理解的名字。枚举是整数类型的别名,它的每个成员都隐式地映射到一个整数值。RED,GREEN,BLUE默认情况下,RED的值为0,GREEN的值为1,BLUE的值为2,但也可以显式指定值。
2024-08-04 21:52:37
242
原创 C语言常用库函数大盘点,你想看的都在这
C语言的标准库为开发者提供了丰富的函数集,覆盖了从基本输入输出、字符串与字符处理、数学运算到高级的内存管理、时间日期处理、文件操作及进程控制等多个方面。掌握这些常用库函数的使用,对于高效地编写C语言程序至关重要。然而,对于进程控制等特定于操作系统的功能,开发者需要了解并适应不同操作系统平台上的API差异。
2024-08-04 12:30:19
915
原创 详解库函数strstr及模拟实现库函数strstr
strstr函数是 C 语言标准库中的一个非常有用的字符串处理函数,它用于在一个字符串中查找另一个字符串首次出现的位置。以下是对strstr。
2024-08-04 00:28:03
838
原创 详解库函数strcmp及模拟库函数strcmp
strcmp函数是 C 语言中用于比较两个字符串的重要函数,它通过比较字符串中字符的 ASCII 码值来确定两个字符串的大小关系。在使用时,需要注意字符串的结束符、大小写敏感性以及返回值的正确解释。
2024-08-04 00:14:01
1170
原创 详解库函数strcpy及模拟库函数strcpy
函数的主要缺点是它不会检查目标缓冲区的大小。如果目标缓冲区的大小不足以容纳源字符串(包括空字符),则会发生缓冲区溢出,这可能导致未定义行为,包括程序崩溃、数据损坏或安全漏洞(如缓冲区溢出攻击)。复制操作会继续进行,直到遇到源字符串中的空字符为止,然后将该空字符也复制到目标数组中,以标记字符串的结束。的值,即指向目标数组的指针。这个返回值通常用于链式调用或赋值操作,但在实际使用中,返回值往往被忽略。存在缓冲区溢出的风险,建议使用更安全的函数来替代它,如。指向的字符串(包括终止的空字符)复制到。
2024-08-03 23:59:06
370
原创 库函数strlen详解及模拟实现库函数strlen的三种方法
strlen是 C 语言中用于计算字符串长度的标准库函数,它通过遍历字符串直到遇到 null 字符来计算长度。尽管它很方便,但在使用时需要注意空指针的风险和性能问题。在需要高效处理字符串时,考虑使用其他方法或优化算法可能更为合适。模拟库函数strlenstrlen为求字符长度,必不为负数,实际返回类型为size_t,typedef unsigned intassert(str!= NULL);str++;}//计算器法。
2024-08-03 23:43:53
796
原创 对各种数组的一些理解及其所表示的意义
/&a是数组的地址,*&a就是拿到了数组,*&a--> a,a就是数组名,sizeof(*&a)-->sizeof(a)//a+1是第二行的地址,*(a+1)表示的就是第二行,*(a+1)--a[1] //16。
2024-08-03 15:35:22
508
原创 函数指针与函数指针数组
是对函数指针进行解引用,因此这段代码的作用就是调用0地址处的函数:该函数无参数,返回类型是 void。(*fp2)(5, 4) 和 fp2(5, 4) 都可以调用函数,这说明那颗星是一个摆设!这里的Add是一个函数名,函数接收两个int型的参数,函数的返回类型也是int.可以看做是对函数指针p进行声明的语法,这里p的类型就是。函数指针:指向函数的指针,存放函数地址的指针。&func_name 取到的就是函数的地址;指向函数指针数组的指针是一个。:如何对下面的代码进行解析?函数进行声明的语句。
2024-08-01 23:49:43
399
原创 原码、反码、补码、移码
现实世界中所有的减法也可以当成加法的,减去一个数可以看作加上这个数的相反数,但前提是要先有负数的概念,这就是为什么不得不引入一个符号位。若为1,则说明该数为负。所以 ,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。原码、反码、补码的产生过程就是为了解决计算机做减法和引入符号位的问题。为了便于运算,带符号的机器数可采用原码、反码、补码、移码等不同的编码方法,机器上的这些编码方法称为码制。为了便于运算,带符号的机器数可采用原码、反码、补码、移码等不同的编码方法,机器上的这些编码方法称为码制。
2024-07-31 23:12:32
460
原创 写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和
if (n > 9)elsereturn n;int main()int n = 0;return 0;
2024-07-24 20:56:49
195
原创 实现一个函数is_prime,判断一个数是不是素数。利用上面实现的is_prime函数,打印100到200之间的素数。
main()int m;for(m=100;m<=200;m++)int i;for (i = 3;i += 2) {return 1;
2024-07-24 20:30:10
190
原创 新手小白的第一篇博客
虽然我现在只是一个C语言的新手小白,但我坚信只要我不断努力、持续学习,我一定能够在这个领域取得更大的进步。C语言以其简洁的语法、强大的功能和广泛的应用领域吸引了我。3. 深入学习:随着学习的深入,我开始接触到更复杂的编程概念和技巧,比如函数、数组、指针、结构体等。这些概念的学习让我对C语言有了更深入的理解,也让我意识到编程的世界是如此的广阔和深奥。我是一个刚刚踏入编程世界的新手小白,今天想和大家分享我的C语言学习之旅的起点。- 学习常用的算法(如排序、查找等)和数据结构(如链表、栈、队列等)。
2024-07-22 20:17:13
368
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人