C语言
文章平均质量分 89
参考经典著作《C和指针》,适合C语言初学者和初级C程序员
kjl167
分布式存储开发牛马,2023届毕业生,C/C++方向学习者
展开
-
C语言 预编译详解
C语言 预编译详解一、 预定义符号二、 #define 宏定义2.1 定义不带参数的宏2.2 定义带参数宏2.2.1 小技巧2.3 #define 替换规则2.3.1 # 作用2.3.2 ## 作用 编译C程序涉及很多步骤,第1个步骤就是预编译(预处理)阶段,预编译是在源代码编译之前做一些文本性质的操作。包括删除注释、执行预处理指令。为了观察预编译阶段所做的事,环境使用Linux系统下的GCC编译器一、 预定义符号ANSI C定义了一些预定义符号,它们表示不同含义__FILE__ :进行编译的源文件原创 2022-04-17 12:50:00 · 10403 阅读 · 9 评论 -
C语言 程序的编译、链接、执行
C语言 程序的编译、链接、执行一、 程序的环境1.1 方式一1.2 方式二一、 程序的环境 在ANSI C的任何一种实现中,存在两种不同环境。第1种是翻译环境,在这个环境中源代码文件被转换为可执行的机器指令(二进制代码)。第2种是执行环境,它用于实际执行代码。标准规定,这两种环境可以不在同一台计算机上,即可以在计算机A中编译程序,在计算机B中执行程序。对于这两种环境按步骤细节有两种划分方式1.1 方式一方式一将翻译环境按步骤细分为编译、链接两步,运行环境不变。这就是我们常说的程序的编译、链接、执行原创 2022-04-14 00:50:46 · 4384 阅读 · 2 评论 -
C语言 文件
C语言 文件一、文件1.1 什么是文件1.2 文件名二、 文件流的打开与关闭2.1 流2.2一、文件1.1 什么是文件 磁盘文件在DOS管理中被定义为存贮在外部介质上的程序或数据的集合,是一批逻辑上有联系的数据。每个文件都有个文件名作为标识,每个文件在磁盘中的具体存放位置、格式都由操作系统中的文件系统管理,也就是说,操作系统是以文件为单位对程序或数据进行管理的。 在C语言中文件的含义更为广泛,不仅包含以上所述的磁盘文件,还包括一切能进行输入/输出的终端设备,它们被看成是设备文件。如键盘常称为标准输入原创 2022-04-10 11:23:44 · 1965 阅读 · 0 评论 -
C语言 查看库函数执行失败原因
C语言 显示库函数执行失败信息一、 errno 是什么二、 strerror函数三、 perror函数一、 errno 是什么C语言提供了许多库函数方便我们使用。当一个库函数执行失败时候,可以查看errno对应的错误信息了解库函数执行失败准确原因。errno:错误代码,一个int类型变量,在errno.h中定义,每个错误代码对应一个错误信息字符串,任何库函数都可以将其值修改为不同于零的某个值,通常用于指示特定类别的错误信息注意:只有当一个库函数执行失败时,才会设置errno。当库函数成功执行时,er原创 2022-04-08 12:02:48 · 2502 阅读 · 0 评论 -
C语言 动态内存分配
C语言 动态内存分配一、动态内存分配函数1.1 malloc和free函数前言:之前学习了数组,数组的元素储存在内存中连续位置。在声明数组时必须要指定数组的元素个数,即数组空间大小在声明时已经确定了。但是需存放的元素个数常常在运行时才能知道(取决于输入的数据)。这会有几个缺点:1. 当输入元素个数大于数组声明的元素个数时会带来意想不到错误 2. 当输入元素个数小于数组声明的元素个数时会带来内存空间的浪费 3. 数组大小不能动态调整。C语言提供了相关的动态内存分配函数,需要多大内存空间就分配多大内存空间,原创 2022-03-28 19:14:28 · 6747 阅读 · 2 评论 -
C语言 结构体与位段
C语言 结构体与位段一、结构体1.1 结构体是什么1.2 结构体声明1.3 结构体的特殊声明1.4 结构体的成员1.4 结构体变量的定义和初始化一、结构体1.1 结构体是什么 在之前C语言学习中我们接触了整形类型、浮点型类型、指针类型、数组类型等,但是我们发现要描述一个复杂对象的时候,如描述一个人,需要有姓名、身高、年龄、体重等属性,并且每个属性可能是不一样的数据类型。我们发现之前学习的数据类型都无法满足。学过面向对象编程语言的肯定会想到通过定义对象来实现,在C语言中我们通过结构体来实现上述功能。结原创 2022-03-18 12:46:00 · 1429 阅读 · 0 评论 -
C语言 内存函数
C语言 内存函数一、内存复制函数1.1 memcpy函数1.2 memmove函数二、内存比较函数 memcmp三、内存查找字符函数 memchr四、内存设置函数 memset前言:C语言提供了许多与内存相关函数,可以在头文件<string.h>中查看函数声明,本章将会自行编写相关内存函数一、内存复制函数1.1 memcpy函数功能:将num字节的值从source指向的位置直接拷贝到destination指向的内存块,该函数不检查源中是否有’\0’字符——它总是精确地复制num字节。但原创 2022-03-15 19:19:10 · 1406 阅读 · 0 评论 -
C语言 字符串函数
前言:字符串是一种重要的数据类型,但是C语言没有显式的字符串数据类型,字符串通过字符串常量或字符数组方式储存。C语言提供了许多与字符串相关函数,可以在头文件<string.h>中查看函数声明,本章将会自行编写相关字符串函数一、字符串长度函数 strlen功能:字符串以 ‘\0’ 作为结束标志,strlen函数返回的是在字符串中 ‘\0’ 前面出现的字符个数(不包含 ‘\0’ )库函数strlen函数声明:size_t strlen(char const *string原创 2022-03-14 00:40:46 · 11567 阅读 · 2 评论 -
C语言 数组
C语言 数组一、一维数组1.1 一维数组的声明1.2 一维数组的初始化1.3 引用数组元素数组:一组相同类型元素的集合一、一维数组1.1 一维数组的声明元素类型 数组名[数组大小]说明:数组大小一般为常量表达式,c99标准支持可变长数组,即大小可以使用变量表示int arr[10]; //声明一个整形数组,数组有10个元素,数组名为arr1.2 一维数组的初始化初始化:在数组声明时为数组赋值int arr1[5] = {1,2,3};int arr2[5] = {1,2,3,4,5};原创 2022-02-26 14:16:32 · 1590 阅读 · 0 评论 -
变量与static关键字
变量与static关键字修饰一、变量1.1 全局变量与局部变量1.2 变量的作用域1.3 变量的生命周期二、static关键字2.1 修饰全局变量2.2 修饰局部变量2.3 修饰函数一、变量变量:在内存中开辟一段空间,存储对应的值。这个空间存储的值是可以改变的变量声明:告诉编译器有个变量,编译器在内存中开辟一段空间,若没有赋值,则存储的值是一个随机值变量声明语法: 类型 变量名; 如 int i;即有个变量为i, i为int类型 1.1 全局变量与局部变量全局变量:定义在代码块 { }之外原创 2022-01-20 13:07:40 · 615 阅读 · 0 评论 -
C语言 初级指针讲解
指针一、指针是什么1.1 地址是什么1.2 指针与指针变量二、指针类型意义2.1 指针+-整数2.2 指针的解引用三、野指针3.1 野指针成因3.1.1 指针未初始化3.1.2 指针越界访问3.1.2 指针指向的空间已经释放3.2 避免野指针方法四、指针运算4.1 指针+-整数4.2 指针-指针4.3 指针的关系运算五、指针与数组5.1 数组名意义5.2 数组名两个例外一、指针是什么1.1 地址是什么 在计算机中,为了对内存空间进行管理,将内存空间划分成若干个存储单元。每个存储单元大小为1字节,并对每原创 2022-01-17 14:05:37 · 487 阅读 · 0 评论 -
C语言 运算符
运算符一、算数运算符二、移位运算符2.1左移运算符 <<2.2 右移运算符 >>三、位运算符3.1 按位与 &3.2 按位或 |3.3 按位异或 ^3.4 经典笔试题一、算数运算符算数运算符有: + - * / % 五种。由于运算符有两个操作数。也被称为双目运算符对于 / 运算符,两个操作数都是整数执行的是整数除法。至少有一个操作数是浮点时执行浮点除法#include <stdio.h>int main() { int i = 5原创 2022-01-15 12:25:45 · 1609 阅读 · 2 评论 -
C语言 函数
函数一、函数1.1 什么是函数1.2 C语言中函数分类二、函数定义与声明2.1函数的定义2.1函数的声明三、函数调用3.1实参与形参3.2传值调用与传址调用一、函数1.1 什么是函数函数:完成特定功能的程序段维基百科对函数的定义:子程序 1.在计算机科学中,子程序是一个大型程序中的某部分代码,由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代码,具有相对独立性。 2.一般会有输入参数并有返回值,提供了对实现过程的封装和细节的隐藏。1.2 C语言中函数分类函数主要分为两大类:原创 2022-01-10 16:24:58 · 293 阅读 · 0 评论 -
几个循环练习题(九九乘法表、金字塔、猜数字游戏)
前言在之前博客中讲解了循环的基础语法,下面通过几个小题来练习下。如之前没有学习过循环朋友可以先看下面这篇博客后再来看这篇。https://blog.csdn.net/kjl167/article/details/122376147先再来看此博客题目一、九九乘法表二、星号图案三、猜数字游戏一、九九乘法表分析:九九乘法表主要由两个变量相乘而成,变量范围为1-9,变量类型我们可以选择整数类型。1 * 1 = 1 (第1行,有1列)2 * 1 = 2 2 * 2 = 4 (第2行,有2原创 2022-01-09 16:06:35 · 2426 阅读 · 0 评论 -
C语言的控制结构(顺序结构、选择结构、循环结构)详解
C语言的三种控制结构一、顺序结构二、选择结构if语句switch语句三、循环结构for循环while循环do while循环前言:程序由三种基本结构组成:顺序结构、选择结构、和循环结构,任何程序都由这3种基本结构组合而成。优点:不会存在无规律的转向,可以使程序结构清晰,易于验证正确性且易于纠错。遵循这种方法的程序设计就是结构化程序设计。此处简单画出三种结构的执行流程图:一、顺序结构顺序结构:依照线性顺序依次执行,简单说就是从上到下依次执行例如下面程序会依次输出1、2、3、4、5#inclu原创 2022-01-08 10:18:23 · 32116 阅读 · 7 评论