标签: C

10 篇文章

thumbnail
进程虚拟内存空间
进程虚拟内存空间 虚拟内存空间 将 C 程序的内存管理任务完全交给操作系统,虽然听起来是一种简化的方法,但实际上可能会带来一系列问题: 进程隔离性:操作系统需要确保不同进程之间的内存空间相互隔离,以防止一个进程访问或破坏另一个进程的数据。如果 C 程序直接管理物理内存,这种隔离性很难实现,因为程序可能无意中访问到其他进程的内存区域,或者操作系统难以…
thumbnail
C 语言指针
指针基础 在 C 语言中,指针和指针变量通常被视为相同的概念,但在严格意义上,它们有细微的区别: 指针 指的是内存中的一个地址,它是虚拟内存空间中某字节的唯一标识。 指针变量 则是专门用来存储这个地址的变量。指针变量本身也具有自己的内存地址,并且内部存储的数据是它所指向的内存地址。 指针的初始化 直接地址赋值:最常见的初始化方法是将一个变量的地址赋…
thumbnail
C 语言字符串
字符串 字符串的本质 在 C 语言中,字符串字面值是一种特殊的数据表示形式,其本质是以空字符('\0')结尾的字符数组。 字符串字面值通常存储在程序的 数据段 中。数据段是程序内存布局的一部分,用于存储程序的全局变量和静态变量。 数据段可以进一步细分为两个区域: 1. 静态数据段:存储程序中的静态数据,如全局变量和静态局部变量。这个区域的数据具有可…
thumbnail
C 语言结构体
c## 结构体 结构体基本的定义形式 结构体的基本定义形式如下: struct <结构体名> { <成员类型> <成员名>; ... } <结构体变量>; 这种格式定义了一个新的数据类型,称为 结构体名,并同时可以定义一个或多个该类型的变量。 以下是一个名为 Person 的结构体类型定义示例: st…
thumbnail
C 语言数组
数据结构中的两个核心概念 在计算机科学中,数据结构是组织和存储数据以供程序处理的重要方式。它们可以从两个核心概念来理解:逻辑结构和物理结构。 逻辑结构: 逻辑结构是指数据元素之间的逻辑关系,它定义了数据元素是如何相互关联的。 例如,线性表 是一种数据结构,其中数据元素之间存在一对一的关系。这使得线性表在处理有序数据时非常有用。 另一个例子是 树型结…
thumbnail
C 语言头文件
文件包含 C 语言的编译过程 C语言程序的编译过程可以分解为几个关键阶段。首先,源代码文本通过预处理器进行处理,该阶段负责宏的展开,即将代码中的宏定义替换为它们的具体值。例如,若定义了一个宏 COLOR_RED 值为 #FF0000,则预处理器将所有 COLOR_RED 的实例替换为相应的十六进制值。 接下来,经过宏替换的源代码进入编译阶段,编译器…
thumbnail
C 语言函数
函数基础 在标准 C 语言中,函数定义遵循严格的语法规则,确保函数的结构清晰和一致性。一个典型的函数定义包括以下部分: 返回值类型:指定函数返回值的数据类型,如 int、void 等。 函数名:一个描述性的标识符,遵循命名规范,推荐使用小驼峰命名法,以动词开头。 形参列表:括号内列出函数接收的参数,参数之间用逗号分隔。如果函数不需要参数,可以使用 …
thumbnail
C 语言语句
在 C 语言中,复合语句使用花括号 {} 来定义,它们允许 if、for、while 等控制结构控制多条语句。即使只有一条语句,也应该使用 {} 括起来,这是良好的编程习惯,有助于避免潜在的 bug。 条件分支语句 if 语句 在使用 if 多分支时,应该将能够给出返回值的选择放在代码的上方,这样可以利用 return 提前结束函数,减少 if 分…
thumbnail
C 语言数据类型
int 类型 int 的几种类型:short int,int, long int,long long,还有对应的无符号,int 和 long int 的字节数相同 sizeof 运算符可以用来测量任何类型或变量在内存中所占用的字节数,这个运算符的结果是一个 size_t 类型的值,表示以字节为单位的内存大小,且结果总是非负的。sizeof 运算符的…