
C语言进阶
文章平均质量分 82
RWCC
这个作者很懒,什么都没留下…
展开
-
BIT-0-程序环境和预处理
程序环境和预处理一、程序的翻译和执行二、预处理详解一、程序的翻译和执行在ANSI C的任何一种实现中,存在两个不同的环境。第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第2种是执行环境,它用于实际执行代码。翻译环境:组成一个程序的每个源文件通过编译过程分别转换成目标代码(object code)。每个目标文件由链接器(linker)捆绑在一起,形成一个单一而完整的可执行程序。链接器同时也会引入标准C函数库中任何被该程序所用到的函数,而且它可以搜索程序员个人的程序库,将其需要原创 2021-11-08 19:59:02 · 216 阅读 · 2 评论 -
C语言文件操作
文件操作前言一、文件是什么?二、文件的打开和关闭1.文件指针2.打开和关闭3.文件的顺序读写三、文件的随机读写四、文本文件和二进制文件五、 文件读取结束的判定六、文件缓冲区前言文件涉及到了数据持久化的问题,我们一般数据持久化的方法有,把数据存放在磁盘文件、存放到数据库等方式。使用文件我们可以将数据直接存放在电脑的硬盘上,做到了数据的持久化。一、文件是什么?磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。文件名:一个文件要有一个唯一原创 2021-11-06 17:39:02 · 574 阅读 · 2 评论 -
自定义类型:结构体,枚举,联合
自定义类型一、结构体结构体的声明:结构的自引用:结构体变量的定义和初始化结构体内存对齐修改默认对齐数结构体传参二、位段1.什么是位段?总结一、结构体结构体的声明:例如描述一个学生:struct Stu{ char name[20];//名字 int age;//年龄 char sex[5];//性别 char id[20];//学号};//分号不能丢特殊的声明://匿名结构体类型struct{ int a; char b; float c; }x;struct{原创 2021-11-05 11:22:00 · 529 阅读 · 6 评论 -
动态内存管理
动态内存管理前言为什么存在动态分配一、动态内存函数的介绍二、常见动态内存错误1.对NULL指针的解引用操作2.对动态开辟空间的越界访问3.对非动态开辟内存使用free释放4.使用free释放一块动态开辟内存的一部分5.对同一块动态内存多次释放6.动态开辟内存忘记释放(内存泄漏)三、几个经典的笔试题前言为什么存在动态分配之前开辟空间的方式有两个特点:空间开辟大小是固定的。数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。 但是对于空间的需求,不仅仅是上述的情况。有时候我们需要原创 2021-11-02 11:24:20 · 220 阅读 · 3 评论 -
字符函数和字符串函数
字符串库函数前言一、函数介绍二、字符串分类函数三、me系列库函数四、库函数的模拟实现前言C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在 常量字符串 中或者 字符数组 中。 字符串常量 适用于那些对它不做修改的字符串函数。一、函数介绍strlensize_t strlen(const *char str);注意其返回值为size_t是无符号整数。strcpychar *strcpy(char *destination,const char *s原创 2021-10-26 11:24:50 · 126 阅读 · 0 评论 -
指针的进阶
指针进阶一、函数指针数组二、指向函数指针数组的指针一、函数指针数组要把函数的地址存到一个数组中,那这个数组就叫函数指针数组,那函数指针的数组如何定义?int (*parr1[10]])();int *parr2[10]();int (*)() parr3[10];答案是:parr1 parr1 先和 [] 结合,说明parr1是数组,数组的内容是什么呢? 是 int (*)() 类型的函数指针。使用函数指针数组的实现:计算器#include <stdio.h>int add(原创 2021-10-25 16:10:01 · 180 阅读 · 0 评论 -
浮点数类型的存储
浮点数类型的存储前言一、浮点数存储的例子二、解释前面的题目前言常见的浮点数:3.14159 1E10 浮点数家族包括: float、double、long double 类型。 浮点数表示的范围:float.h中定义一、浮点数存储的例子int main(){ int n = 9; float *pFloat = (float *)&n; printf("n的值为:%d\n",n); printf("*pFloat的值为:%f\n",*pFloat); *pFloat = 9.0原创 2021-10-10 14:49:08 · 752 阅读 · 1 评论 -
整形数据存储练习题
练习练习一练习二练习三练习四练习五练习六练习七练习一1.//输出什么?#include <stdio.h>int main(){ char a= -1; signed char b=-1; unsigned char c=-1; printf("a=%d,b=%d,c=%d",a,b,c); return 0; } 输出结果为 -1 -1 255,因为无符号数-1在内存中的存储为补码1111 1111.练习二2.#include原创 2021-09-27 19:17:36 · 242 阅读 · 2 评论