![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 96
m(^.^)m
好好学习,天天向上!!!
展开
-
程序环境和预处理
_FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义//VS2019执行不了,表示其不遵循ANSI C这个标准,gcc遵循这些预定义符号都是语言内置的。int main()//写日志文件int i = 0;for (i = 0;i < 10;fclose(pf);原创 2023-09-13 16:01:55 · 117 阅读 · 1 评论 -
C语言文件操作
磁盘上的文件是文件。在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度分类)原创 2023-09-06 15:02:08 · 127 阅读 · 3 评论 -
动态内存管理
这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。如果开辟成功,则返回一个指向开辟好空间的指针。如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。返回值的类型是void*,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己来决定。如果参数size为0,malloc的行为是标准未定义的,取决于编译器。C语言提供了另外一个函数freefree函数是用来释放动态开辟的内存。如果参数ptr指向的空间不是动态开辟的,那free。原创 2023-09-04 17:26:34 · 36 阅读 · 1 评论 -
自定义类型:结构体&枚举&联合
int x;int y;}p1;//声明类型的同时定义变量p1(全局变量)//定义结构体变量p2(全局变量)//在代码块内部定义(局部变量)//初始化:定义变量的同时赋初值struct Stu //类型声明//姓名int age;//年龄//初始化int data;//结构体嵌套初始化//结构体嵌套初始化位段的成员必须是int或signed int。位段的成员名后边有一个冒号和一个数字。//a占两个二进制位(2个比特位)原创 2023-08-27 15:58:34 · 49 阅读 · 0 评论 -
深度剖析数据在内存中的存储
基本的内置类型char // 字符数据类型short //短整型int //整形long //长整形long long //更长的整形float //单精度浮点型double //双精度浮点型类型的意义1.使用这个类型开辟内存空间的大小(大小决定了使用范围)。2.如何看待内存空间的视角。大端(字节序存储)模式。原创 2023-08-15 18:16:24 · 50 阅读 · 0 评论 -
指针的进阶
int* pint;能够指向整形数据的指针。float* pf;能够指向浮点型数据的指针。故数组指针应该是:能够指向数组的指针。观察下列代码哪个是数组指针?p1先和[ ]结合,说明p1是一个数组,是存放了十个整形指针的指针数组。p2先和*结合,说明p2是一个指针变量,然后指针指向的是一个大小为10个整形的数组。所以p2是一个指针,指向一个数组,叫数组指针。注意:[ ]的优先级要高于号,所以必须加上()来保证p先于结合。原创 2023-08-22 18:47:36 · 38 阅读 · 1 评论 -
字符函数&字符串函数&内存操作函数
原因:因为strlen的返回类型是size_t,而size_t与unsigned int等价,所以两个无符号数相减得到的还是无符号数3-6的结果是无符号数3所以最后输出的结果是错误的。调用函数要包含头文件<string.h>调用函数要包含头文件<string.h>调用函数要包含头文件<string.h>调用函数要包含头文件<string.h>调用函数要包含头文件<string.h>调用函数要包含头文件<string.h>调用函数要包含头文件<string.h>调用函数要包含头文件<string.h>原创 2023-08-25 16:07:22 · 51 阅读 · 0 评论