C 语言入门
文章平均质量分 80
融码一生
专注 Python 相关应用(数据分析、Web 服务 & 爬虫、机器学习 & 深度学习、NLP)、算法、C/C++
展开
-
11.2、虚拟地址空间、编译模式
虚拟地址空间:程序可以使用的虚拟地址的有效范围。虚拟地址和物理地址的映射关系由操作系统决定,相应地,虚拟地址空间的大小也由操作系统决定,但还会受到编译模式的影响。原创 2024-04-20 00:15:00 · 523 阅读 · 0 评论 -
11.1、虚拟内存地址
C 语言中指针变量的值是一个内存地址,&运算符的作用是取变量的内存地址原创 2024-04-19 23:45:00 · 468 阅读 · 0 评论 -
10.5、插入、删除、更改文件内容
我们平时所见的文件,内容是按照从头到尾的顺序依次存储在磁盘上的,就像排起一条长长的队伍,称为顺序文件。原创 2024-04-19 19:26:06 · 306 阅读 · 0 评论 -
10.4、获取文件大小(长度)
C 语言没有提供获取文件大小的函数,要想实现该功能,必须自己编写函数。原创 2024-04-19 19:24:46 · 120 阅读 · 0 评论 -
10.3、FILE 结构体、缓冲区
C 语言中用一个指针变量指向一个文件,这个指针称为文件指针。通过文件指针可对它所指的文件进行各种操作。定义文件指针的一般形式为:原创 2024-04-19 19:23:50 · 553 阅读 · 0 评论 -
10.2、文件复制
主要思路:开辟一个缓冲区,不断从原文件中读取内容到缓冲区,每读取完一次就将缓冲区中的内容写入到新建的文件,直到把原文件的内容读取完。原创 2024-04-19 19:22:48 · 119 阅读 · 0 评论 -
10.1、文件操作
C 语言具有操作文件的能力,如打开文件、读取和追加数据、插入和删除数据、关闭文件、删除文件等。原创 2024-04-19 19:21:57 · 838 阅读 · 0 评论 -
9.4、位域(位段)、位运算
● 有些数据在存储时并不需要占用一个完整的字节,只需要占用一个或几个二进制位即可。● 如开关只有通电和断电两种状态,用 0 和 1(一个二进位)表示足以。基于这种考虑,C 语言又提供一种叫做位域的数据结构。原创 2024-04-19 19:21:10 · 798 阅读 · 0 评论 -
9.3、共用体(union)、大端小端
结构体(Struct)是一种构造类型或复杂类型,它可以包含多个类型不同的成员。原创 2024-04-19 19:19:58 · 610 阅读 · 0 评论 -
9.2、枚举类型(enum)
在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,如:一个星期只有七天,一年只有十二个月,一个班每周有六门课程等。原创 2024-04-19 19:19:02 · 328 阅读 · 0 评论 -
9.1、结构体(struct)介绍
C 语言结构体(Struct)从本质上讲是一种自定义的数据类型,只不过这种数据类型比较复杂,是由 int、char、float 等基本类型组成。可以认为结构体是一种聚合类型。原创 2024-04-19 19:14:55 · 1038 阅读 · 0 评论 -
8.9、main 函数的高级用法
main()是 C 语言程序的入口函数,有且只能有一个,它实际上有两种标准的原型:原创 2024-04-19 03:45:00 · 172 阅读 · 0 评论 -
8.8、指针汇总
不同指针、指针数组的定义形式:原创 2024-04-18 23:14:18 · 826 阅读 · 0 评论 -
8.7、函数指针(指向函数的指针)
一个函数总是占用一段连续的内存区域,函数名在表达式中有时也会被转换为该函数所在内存区域的首地址,这和数组名非常类似。可以把函数的这个首地址(入口地址)赋予一个指针变量,使指针变量指向函数所在的内存区域,然后通过指针变量就可以找到并调用该函数。这种指针就是函数指针。原创 2024-04-18 23:13:25 · 112 阅读 · 0 评论 -
8.6、指针数组、二级指针、二维数组指针
如果一个数组中的所有元素保存的都是指针,则称该数组为指针数组。指针数组的定义形式:原创 2024-04-18 23:12:24 · 429 阅读 · 0 评论 -
8.5、二级指针、空指针、void 指针
指针可以指向一份普通类型的数据(如 int、double、char),也可以指向一份指针类型的数据(如int *、double *、char *);如果一个指针指向的是另外一个指针,则称它为二级指针,或指向指针的指针。原创 2024-04-18 23:11:29 · 848 阅读 · 0 评论 -
8.4、指针与函数
C 语言中函数的参数不仅可以是整数、小数、字符等具体的数据,还可以是指向它们的指针。原创 2024-04-18 23:10:37 · 470 阅读 · 0 评论 -
8.3、字符串指针(指向字符串的指针)
C 语言中没有特定的字符串类型,通常是将字符串放在一个字符数组中。原创 2024-04-18 23:09:49 · 437 阅读 · 0 评论 -
8.2、数组指针:指向数组的指针
数组(Array)是一系列具有相同类型的数据集合,每一份数据叫做一个数组元素(Element)。原创 2024-04-18 23:09:00 · 1214 阅读 · 0 评论 -
8.1、指针基本介绍
指针即内存的地址。指针变量即保存了内存地址的变量。原创 2024-04-18 23:08:06 · 794 阅读 · 0 评论 -
7.6、示例:学生管理系统搭建
学生信息管理系统可以用来管理班级学生,对学生信息(姓名、性别、年龄、成绩等)进行增加、删除、更改、查询等操作。原创 2024-04-18 23:06:40 · 366 阅读 · 0 评论 -
7.5、static 变量和函数
全局变量和函数的作用域默认是整个程序(所有的源文件),这给程序的模块化开发带来了很大方便,让我们能够在模块 A 中调用模块 B 中定义的变量和函数,而不用把所有的代码都集中到一个模块。原创 2024-04-18 23:05:50 · 329 阅读 · 0 评论 -
7.4、模块化编程中的头文件、标准库 & 标准头文件
前面演示多文件编程时创建 main.c 和 module.c 两个源文件,并在 module.c 中定义一个函数和全局变量,然后在 main.c 中进行了声明。原创 2024-04-18 18:15:00 · 703 阅读 · 0 评论 -
7.3、强符号 & 弱符号、强引用 & 弱引用
编写代码过程中经常会遇到一种叫符号重复定义(Multiple Definition)的错误,这是因为在多个源文件中定义了名字相同的全局变量,并且都将它们初始化了。原创 2024-04-18 18:00:00 · 776 阅读 · 0 评论 -
7.2、目标文件、可执行文件详解
编译器编译源代码后生成的文件叫目标文件(Object File),如 Visual Studio 下的.obj,GCC 下的.o。原创 2024-04-18 17:00:00 · 1104 阅读 · 0 评论 -
7.1、多文件编程:extern 关键字(变量/函数声明)
● 多文件编程:把多个头文件(.h文件)和源文件(.c文件)组合在一起构成一个程序。● 多文件编程既涉及到内存、编译原理。学会了多文件编程,就可以使用 C 语言来开发中大型项目。原创 2024-04-18 17:00:00 · 481 阅读 · 0 评论 -
6.8、typedef、const、随机数生成
C 语言允许为一个数据类型起一个新的别名,起别名的目的是为了编码方便。原创 2024-04-18 12:43:03 · 386 阅读 · 0 评论 -
6.7、预处理命令总结
预处理指令是以#号开头的代码行,#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符,整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。原创 2024-04-18 12:42:04 · 384 阅读 · 0 评论 -
6.6、#error 命令,阻止程序编译
#error指令用于在编译期间产生错误信息,并阻止程序的编译,其形式如下:原创 2024-04-18 08:53:31 · 481 阅读 · 0 评论 -
6.5、条件编译(#if、##ifdef、#ifndef)
● 假如要开发一个 C 语言程序,让它输出红色的文字,并且要求跨平台。● 不同平台下控制文字颜色的代码不一样,必须要能够识别出不同的平台。原创 2024-04-18 08:52:46 · 394 阅读 · 0 评论 -
6.4、C 语言中几个预定义宏
● 预定义宏:已经预先定义好的宏,可以直接使用,无需重新定义。● ANSI C 规定了以下几个预定义宏,在各个编译器下都可以使用:原创 2024-04-18 08:51:48 · 215 阅读 · 0 评论 -
6.3、宏参数的字符串化(#)和连接(##)
在宏定义中有时还会用到#和##两个符号,它们能够对宏参数进行操作。原创 2024-04-18 02:00:00 · 277 阅读 · 0 评论 -
6.2、#define(宏定义)
● #define(宏定义命令)也是 C 语言预处理命令的一种。● 宏定义:用一个标识符来表示一个字符串,在后面的代码中出现该标识符就全替换成指定的字符串。原创 2024-04-17 21:50:04 · 922 阅读 · 0 评论 -
6.1、预处理命令、#include
在编译和链接之前,还需要对源文件进行一些文本的预处理操作,如:文本替换、文件包含、删除部分代码等,这个过程由预处理程序完成。原创 2024-04-17 21:49:15 · 851 阅读 · 0 评论 -
5.6、忽略语法细节,从整体上理解函数
C 语言代码是由一个一个的函数构成的,除了定义和说明类的语句(变量定义、宏定义、类型定义等)可以放在函数外面,所有具有运算或逻辑处理能力的语句(加减乘除、if else、for、函数调用等)都要放在函数内部。原创 2024-04-17 19:45:51 · 111 阅读 · 0 评论 -
5.5、递归函数
● 一个函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函数。● 执行递归函数将反复调用其自身,每调用一次就进入新的一层,当最内层的函数执行完毕后,再一层一层地由里到外退出。原创 2024-04-17 19:44:29 · 882 阅读 · 0 评论 -
5.4、全局变量、局部变量、变量作用域
● 形参变量要等到函数被调用时才分配内存,调用结束后立即释放内存。 ○ 形参变量的作用域非常有限,只能在函数内部使用,离开该函数就无效。 ○ 作用域(Scope):变量的有效范围。● C 语言中所有的变量都有自己的作用域。变量的定义位置决定变量作用域。原创 2024-04-17 19:43:33 · 961 阅读 · 0 评论 -
5.3、函数声明、函数原型、函数参考手册
C 语言代码由上到下依次执行,原则上函数定义要出现在函数调用之前,否则就会报错。但在实际开发中经常会在函数定义之前使用它们,这时就需要提前声明。原创 2024-04-17 19:42:37 · 268 阅读 · 0 评论 -
5.2、函数调用
函数调用的一般形式:原创 2024-04-17 19:41:49 · 134 阅读 · 0 评论 -
5.1、函数简介
函数是一段封装好、可重复使用的代码。原创 2024-04-17 19:15:00 · 970 阅读 · 0 评论