C语言入门:从基础语法到实战技巧 C语言基础语法和基础数据类型学习目标开发工具安装和使用C语言介绍和代码结构解析C标准库和程序执行过程C变量和常量(变量在内存中存储)C语言数据类型PART.01 开发工具的安装和使用Dev‑C安装双击安装包语言先选择 “English”点击 “Next”。同意软件的许可协议点击 “I Agree”。选择需要安装的组件默认即可点击 “Next”。选择安装路径点击 “Next”。安装完成点击 “Finish”。第一次打开会让你选择语言可选择 “简体中文”。创建工程和编写代码打开 Dev‑C 后选择文件→新建→项目。选择Console Application(控制台应用程序)可根据需要选择C 项目或C 项目输入项目名称并选择保存路径。项目创建完成后会自动生成一个源文件在其中编写代码。示例C项目代码#include stdio.h #include stdlib.h int main(int argc, char *argv[]){ printf(hello!\n); return 0; }New Project界面要点选择Console Application、勾选C Project、修改项目名称。编译运行与调试编写完代码后点击编译按钮(快捷键F9)检查语法错误。如果编译结果显示0 Errors; 0 Warnings表示编译成功。编译成功后点击运行按钮(快捷键F10)或者直接点击编译运行按钮 (快捷键F11)即可查看程序运行结果。调试操作设置断点在代码行号处点击对应行变为红色即设置了断点。进入调试模式点击 “调试” 按钮(快捷键F5)程序会运行到断点处停止。查看变量双击一个变量右键选择 “添加查看” (快捷键 A)可在左侧看到变量的值。单步执行使用 “下一步” 按钮(快捷键F7) 或 “单步进入” 按钮(快捷键F8)可以逐行执行代码观察程序的运行过程。停止调试点击 “停止执行” 按钮(快捷键F6)结束调试。PART.02 C语言介绍和代码结构解析C语言介绍C语言是国际上广泛使用的高级语言是一种结构化的程序设计语言它既具有高级语言的特性又具低级语言的特性。因此既能编写系统软件又能编写应用软件。C语言特点语言简洁紧凑灵活关键字少运算符丰富数据结构丰富结构化语言语法限制不严格能够对硬件和内存进行操作代码质量和效率高移植性好C语言的应用领域系统软件开发操作系统(如 UNIX、Linux、Windows 的内核部分)、编译器、数据库管理系统等很多都是用 C 语言开发的。嵌入式系统在嵌入式领域C 语言因其高效性和对硬件的直接操作能力被广泛应用于智能设备、汽车电子、工业控制等方面。应用软件开发虽然现在有很多高级语言用于应用软件开发但一些对性能要求较高的应用软件如图形处理软件、游戏引擎等仍然会用到 C 语言。科学计算在一些需要进行大量数值计算的科学研究领域C 语言也发挥着重要的作用。C语言作为编程语言的基础很多其他编程语言(如 C、Java、Python 等)都借鉴了它的语法和思想。掌握 C 语言对于理解计算机工作原理和学习其他编程语言都有着重要的意义。C语言结构C语言允许分割代码和数据可以使用具有局部(临时)变量的函数或代码块来实现这种特性。代码块(程序块)是逻辑上连接在一起的一组程序语句可以当作一个单元来使用。int Sum(int a) { int iSum 0; int i 1; while(i a) { iSum iSum i; i; } return iSum; }一个C程序由一个或者多个.c文件构成。每一个.c文件可以由预处理命令、全局变量声明、函数和注释组成。#include stdio.h /*预处理命令*/ int count0; /*全局变量声明*/ int main(void) /* 函数*/ { printf(Hello World\n); return 0; }C程序被分割成一个个的函数有且仅有一个main函数程序执行时先将控制权传递给main函数(主函数)。函数由函数的首部(函数第一行)和函数体(一对大括号{}中的内容)组成。函数示例/*函数名:int max(int a,int b) 函数功能:求最大值 函数参数: 函数返回值:*/ int max(int a,int b) { if(ab) return a; else return b; }函数的首部类型、名称、参数类型和参数名圆括号内参数有无都可以但括号不能省略。{代表代码块开始}代表结束。完整调用示例#include stdio.h /*预处理命令*/ int max(int a,int b); /*函数原形声明*/ int main(void){ /*函数*/ int num1,num2,result; printf(请输入两个整数:); scanf(%d%d,num1,num2); resultmax(num1,num2); printf(max%d\n,result); return 0; }函数由声明部分和执行部分组成。C语言使用分号;表示语句结束。不识别回车、空格或制表符(这些符号仅用于美化代码)。建议一行写一条语句一条语句也可以跨多行。C语言注释注释用于描述特定的命令、函数或程序增强程序的可读性。多行注释/* 内容 */标准C语言单行注释// 内容PART.03 C标准库和程序编译过程C标准库C编译器都提供有标准函数库。DOS下的C编译器Turbo C 2.0大约有440个函数。BC2.0大约有500多个函数。VC除了标准的C运行库及C语言扩展外还有600多个Windows API以及VC中的类库(MFC)。Linux下的C也有很多扩展及系统函数。程序员编写的函数可以放在库中然后在需要时使用。C程序编译过程源文件(.c) → 编译器编译 → 目标文件(*.o) → 链接器链接 → 可执行文件(*.exeWindows)预处理(Preprocessing)处理源代码中的预处理指令(以#开头)gcc -E hello.c -o hello.i2. **编译(Compilation)**将预处理后的代码转换为汇编语言 gcc -S hello.i -o hello.s汇编(Assembly)将汇编语言转换为机器码(二进制目标文件)gcc -c hello.s -o hello.o4. **链接(Linking)**将多个目标文件和库文件合并为可执行文件 gcc hello.o -o helloC语言源程序文件的后缀是.c经过编译后生成目标文件后缀是.o经过链接后生成可执行文件Windows下后缀是.exe。PART.04 C语言变量和常量C语言变量程序要为每一项数据分配内存通常使用变量来存储数据。使用变量可以引用存储在内存中的数据并随时根据需要显示数据或执行数据操纵。操作系统负责分配变量在内存中的地址。引用内存空间中的值只需指定变量名。变量声明语法数据类型 变量名;示例int varName;变量声明必须放在变量使用之前(先定义后使用)一般放在函数体开头、可执行代码前面也可以放在代码块开头。变量初始化赋值定义时初始化int num1,num2 12;定义之后赋值int num; num 12;大端模式与小端模式多字节数据存储字节序模式规则示例0x12345678存储大端模式 Big‑Endian高位字节存低地址低位字节存高地址低地址→0x120x340x56高地址→0x78小端模式 Little‑Endian低位字节存低地址高位字节存高地址低地址→0x780x560x34高地址→0x12大端网络协议TCP/IP、部分嵌入式硬件。小端x86 Intel/AMD、默认ARM处理器。验证大小端示例代码int main(int argc, char *argv[]) { int num10; char *pnum; printf(%x\n,num); printf(%x\n,p); printf(%x\n,*p); printf(%x\n,*p); printf(%x\n,*p); printf(%x\n,*p); return 0; }C语言常量常量就是程序运行中保持不变的值。常量类型示例整型常量8浮点常量6.3字符常量A字符串常量NAME符号常量两种写法宏定义#define#define NUM 100const修饰const int iNum 100;C标识符规则变量、函数、标签、用户自定义对象的名称叫做标识符。✅合法示例A、a、arena、s_count、marks40、class_one❌非法示例1sttest、oh!god、start...end规则只能由字母、数字、下划线组成不能以数字开头。C语言标识符区分大小写。不能使用C语言关键字。编译器对标识符识别长度有限制。C关键字关键字是语言预定义、拥有特殊含义的标识符全部小写一共32个不能用作变量/函数名。autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotointiflongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile———不要使用系统标识符printf、FILE等作为自定义标识符。PART.05 C语言数据类型C语言数据分为常量、变量类型分为基本类型、构造类型、指针类型。基本类型整型、字符型、实型(float/double)、枚举类型、空类型构造类型数组、结构体、共用体指针类型基础数据类型类型作用占用字节说明int整型存放整数4字节(32位系统)16位系统占2字节可以多个变量同行声明float单精度浮点4字节有效数字6位double双精度浮点8字节有效数字17位char字符类型1字节本质是小整型存储ASCII码void空类型无不能定义普通变量用于函数返回、void指针派生修饰符short、long、unsigned用于修改int、double。整型常量三种书写格式十进制无前缀123、‑232、0八进制以数字0开头023、0101十六进制0x/0X开头0xff、0X2A原码、反码、补码有符号整数编码计算机负数存储使用补码。以8位二进制举例原码最高位符号位0正1负其余位绝对值。500000101-510000101反码正数反码等于原码负数符号位不变数值位全部取反。500000101-511111010补码正数补码等于原码负数 反码 1。500000101-511111011ASCII码表节选值符号值符号32空格48‑57数字0‑965‑90大写A‑Z97‑122小写a‑z33!64数值后缀后缀用途示例u/U无符号整型123ul/L长整型123Lf/F单精度浮点3.14f数据类型代码示例#include stdio.h int main () { char sex F; /*用M和F代表性别*/ float length 13.5f; /*声明length长度可能带有小数位*/ double area; /*声明area */ double pay; /*money有角和分*/ short int age 89; /*人类的年龄现阶段不可能超过150*/ return 0; }选择数据类型先确定存储什么数据再根据取值范围选择合适类型与修饰符。