
c语言
文章平均质量分 65
c语言知识介绍和本人学习心得
kukubuzai
好好学习,实现年薪百万
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
c语言:编译和链接(详解)
这里只是简单的介绍了编译器的编译和链接过程,具体的细节并没有提及,当然对于一般的学习者也不用了解的这么深,只用把大致了解就可以了。对于这部分学习是高度抽象的,因为很多部分就是底层机器的运行逻辑,很枯燥,甚至编译这部分单令出来就可以当成一门大学学科了,所以想要把这部分一下子全搞懂,不太现实,只能是干中学,一边写代码一边深入了解。原创 2025-01-30 15:29:55 · 1056 阅读 · 0 评论 -
C语言自定义类型:结构体
结构体变量的创建可以在定义的时候就创建正常创建。原创 2025-01-19 17:10:19 · 690 阅读 · 0 评论 -
整数和浮点数的存储
但是,由于科学及算法可以出现负数,这与E的定义有矛盾,所以IEEE754就规定,存入内存时E的真实值必须加上一个中间数,对于8位E,中间数为127,对于11位E,中间数为023。比如:0.5的二进制形式为0.1,由于规定整数部分必须为1,所以小数点要向右移一位,即为1.0^2(-1),其内存中的E为-1+127(中间值),表示为01111110,而M去掉正数部分为0,补齐0到23位。原码和反码和补码一样,因为不用考虑符号,存储的都是有效数据,一律都是加法,所以,不用像有符号整型那样,有取反和加一的规则。原创 2025-01-13 21:10:35 · 746 阅读 · 0 评论 -
文件(c语言文件流)
什么是文件,文件就是存储在磁盘(硬盘)的文件。文件功能的角度来分类程序文件包括源程序文件(后缀为.c),目标文件(windows下后缀为.obj),可执行程序(windows下为.exe)。而数据文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。本文主要介绍数据文件根据数据的组织形式,数据文件被分为文本文件和二进制文件。原创 2025-01-30 19:56:23 · 1138 阅读 · 0 评论 -
字符串函数(strstr strerror perror)
来记录程序当前的错误码。只不过程序启动的时候errno是0,表示没有错误,当我们在使用标准库中的函数的时候发生了某种错误,就会让对应的错误码,存放在errno中。而一个错误码的数字是整数很难理解是什么意思,所以每一个错误码都是有对应的错误信息的。从str1中找到str2,如果找到了就返回第一次出现的地址,即使str2在str1中出现了两次,也只会返回第一次出现的地址。在不同的系统和C语言标准库的实现中都规定了一些错误码,一般是放在errno.h这个头文件中说明的,C语言程序启动时就会使用一个全局的变量*原创 2024-10-12 09:50:46 · 172 阅读 · 0 评论 -
c语言:语言分支和循环讲解
假设一个循环要循环5次,如果你在循环到第三次的时候就执行到了break语句,那么也不会执行后面的2次循环,但continue语句则是会仅仅跳过当前循环continue后的代码,还是会进行后面的2次循环。也许在这里你一看就发现了错误,a=5,这是赋值不是判断,因为这是单拿出来给你看,但是当你的代码长度变长了呢,你觉得你还能一眼就看出来了吗,但是当我们去把常量写在左边的时候,一般就会主动报错,这可比你去查找错误高校多了。,否则你会发现你的变量直接变成了循环完的值,那是因为你在for()直接加;原创 2024-09-10 20:45:31 · 396 阅读 · 0 评论 -
逗号表达式c语言
int main()return 0;int a = 1;int b = 2;//c = 13return 0;原创 2024-09-22 20:34:42 · 155 阅读 · 0 评论 -
assert宏
如果该表达式为假(返回值为零), assert() 就会报错,在标准错误 流 stderr 中写⼊⼀条错误信息,显⽰没有通过的表达式,以及包含这个表达式的⽂件名和⾏号。2. assert对程序员非常友好,可以自动表示文件和出问题的行号,还有一种无需更改代码即可开启或关闭assert的机制,assert的缺点是引入了额外的代码,增加了代码的时间。例如,当一个传参指针的时候,可以对指针断言是否为空指针,防止对空指针引用,导致非法访问等一系列问题。4. assert宏可以通过编译选项进行启用或禁用。原创 2024-09-22 20:15:06 · 254 阅读 · 0 评论 -
内存函数介绍
函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。这个函数在遇到 '\0' 的时候并不会停下来。如果source和destination有任何的重叠,复制的结果都是未定义的。原创 2024-10-12 21:39:13 · 351 阅读 · 0 评论 -
动态内存函数介绍
calloc 开辟num个size的动态内存并全部初始化为0 单位为字节与malloc区别就是,malloc申请的空间不会初始化,值是随机的,而calloc会初始化为0。(参数为申请的动态内存的地址)释放动态内存,这里的释放不是直接销毁数据,而是把内存的权限返回给操作系统,内存里的数据还是在,这就会产生野指针,所以还需要对指针置空。free释放的内存必须是动态的,否则是未定义如果给free一个NULL,他什么都不会做。有时会我们发现过去申请的空间太⼩了,有时候我们⼜会觉得申请的空间过⼤了,那为了合理的使。原创 2024-10-12 20:26:36 · 302 阅读 · 0 评论 -
字符串比较
来比较两个字符串时,C语言会将它们视为指针,比较的是它们在内存中的地址值,而不是它们的内容。因此,这样的比较结果并不能反映字符串内容的“大小”。这样的比较运算符,因为这些运算符是用来比较单个字符的ASCII值的,而不是用来比较整个字符串的内容。在C语言中,字符串实际上是通过字符数组来表示的,字符串比较不能使用。函数会逐个字符比较两个字符串,直到遇到不同的字符或字符串结束。要比较两个字符串的内容,你应该使用 strcmp。原创 2024-10-12 09:53:33 · 228 阅读 · 0 评论