2.1 进入C2.1.1 第一个C程序// myfirst.cpp -- 第一个C程序 #include iostream // 预处理器编译指令 ​ int main() // 函数头 { using namespace std; // 使用std命名空间 cout Come up and C me some time. endl; cout You wont regret it! endl; return 0; // 结束main()函数 }输出Come up and C me some time. You wont regret it!2.1.2 程序结构解析组成部分说明// 注释单行注释编译器忽略#include iostream预处理器指令包含头文件int main()主函数程序入口{ }函数体定界符using namespace std;使用标准命名空间return 0;返回值0表示正常结束2.1.3 注释C 支持两种注释方式// 这是单行注释C风格 ​ /* 这是 多行注释 C风格*/ ​ #include iostream int main() { // 单行注释示例 /* 多行注释示例 可以跨越多行 */ std::cout Hello, World! std::endl; return 0; }⚠️注意C风格的//注释更常用C风格/* */注释不能嵌套。2.1.4 预处理器与头文件#include iostream // C标准头文件无.h后缀 #include cmath // C数学库的C版本 #include myfile.h // 用户自定义头文件用引号 用于标准库头文件 用于自定义头文件C头文件没有.h后缀如iostream而非iostream.h2.1.5 main() 函数// main函数的标准形式 int main() { // 函数体 return 0; // 向操作系统返回0表示程序正常结束 }main()是程序的入口点每个C程序必须有且只有一个main()返回类型int表示向操作系统返回一个整数return 0表示程序正常退出非0值通常表示异常2.2 C语句2.2.1 声明语句与变量#include iostream int main() { using namespace std; ​ int carrots; // 声明一个整型变量 carrots 25; // 赋值语句 cout carrots endl; ​ int apples 10; // 声明并初始化推荐写法 cout apples endl; ​ return 0; }变量声明规则必须先声明再使用变量名区分大小写Carrots≠carrots不能以数字开头不能使用C关键字2.2.2 赋值语句#include iostream int main() { using namespace std; ​ int steinway; int baldwin; int yamaha; ​ yamaha steinway baldwin 88; // 连续赋值从右向左 cout yamaha yamaha endl; cout baldwin baldwin endl; cout steinway steinway endl; ​ return 0; }输出yamaha 88 baldwin 88 steinway 882.2.3 cout 输出语句#include iostream int main() { using namespace std; int number 42; double pi 3.14159; // 输出字符串 cout Hello, C! endl; // 输出变量 cout number number endl; // 链式输出运算符可以连续使用 cout pi pi \n; // endl vs \n cout 使用endl会刷新缓冲区 endl; cout 使用\\n只换行不刷新 \n; return 0; }endl vs\nendl输出换行符并刷新输出缓冲区\n只输出换行符效率更高。2.3 其他C语句2.3.1 cin 输入语句// getinfo.cpp -- 使用cin读取用户输入 #include iostream int main() { using namespace std; int carrots; cout How many carrots do you have? endl; cin carrots; // 从键盘读取整数 cout Here are two more. ; cout Now you have carrots 2 carrots. endl; return 0; }运行示例How many carrots do you have? 12 Here are two more. Now you have 14 carrots.2.3.2 cin 读取多个值#include iostream int main() { using namespace std; int age; double height; cout 请输入年龄和身高用空格分隔 endl; cin age height; // 链式读取 cout 年龄 age endl; cout 身高 height 米 endl; return 0; }2.3.3 类简介// 类是C的核心概念 // cout 和 cin 都是类的对象 // cout 是 ostream 类的对象 // cin 是 istream 类的对象 // 它们都定义在 iostream 头文件中 #include iostream int main() { using namespace std; // cout 对象使用 运算符插入运算符 cout 这是cout对象的使用示例 endl; // cin 对象使用 运算符提取运算符 int x; cin x; return 0; }2.4 函数2.4.1 使用有返回值的函数// sqrt_demo.cpp -- 使用sqrt()函数 #include iostream #include cmath // 包含数学函数库 int main() { using namespace std; double area; cout 请输入正方形的面积; cin area; double side sqrt(area); // 调用sqrt()函数求平方根 cout 边长为 side endl; // 函数可以嵌套使用 cout 4的平方根是 sqrt(4.0) endl; cout 2的平方根是 sqrt(2.0) endl; return 0; }运行示例请输入正方形的面积25 边长为5 4的平方根是2 2的平方根是1.414212.4.2 自定义函数// ourfunc.cpp -- 定义并使用自定义函数 #include iostream // 函数原型声明 void simon(int n); // 无返回值函数 int sum(int a, int b); // 有返回值函数 int main() { using namespace std; simon(3); // 调用自定义函数 cout Pick an integer: ; int count; cin count; simon(count); cout 1 2 sum(1, 2) endl; return 0; } // 函数定义 void simon(int n) { using namespace std; cout Simon says touch your toes n times. endl; } int sum(int a, int b) { return a b; }输出Simon says touch your toes 3 times. Pick an integer: 5 Simon says touch your toes 5 times. 1 2 32.4.3 函数原型#include iostream // ✅ 函数原型在main()之前声明函数 double cube(double x); // 告诉编译器函数的参数类型和返回类型 int main() { using namespace std; double side 3.0; double volume cube(side); cout 边长为 side 的正方体体积为 volume endl; return 0; } // 函数定义可以在main()之后 double cube(double x) { return x * x * x; }函数原型的作用告知编译器函数的返回类型告知编译器函数的参数数量和类型使编译器能够检查函数调用是否正确2.4.4 void 函数无返回值#include iostream void printLine(char ch, int width); // 函数原型 int main() { printLine(*, 20); std::cout Hello, C! std::endl; printLine(-, 20); return 0; } void printLine(char ch, int width) { for (int i 0; i width; i) std::cout ch; std::cout std::endl; }输出******************** Hello, C! --------------------2.5 命名空间2.5.1 using namespace std#include iostream // 方式一使用整个命名空间最常见但不推荐在大型项目中使用 using namespace std; int main() { cout 方式一using namespace std endl; return 0; }2.5.2 using 声明推荐#include iostream int main() { // 方式二只引入需要的名称推荐 using std::cout; using std::endl; using std::cin; int x; cout 请输入一个数字; cin x; cout 你输入了 x endl; return 0; }2.5.3 使用作用域解析运算符最规范#include iostream int main() { // 方式三每次使用时加 std:: 前缀最规范大型项目推荐 std::cout 方式三使用 std:: 前缀 std::endl; std::cout 这是最明确的写法 std::endl; return 0; }方式写法适用场景全局引入using namespace std;学习、小型程序局部声明using std::cout;中型程序作用域解析std::cout大型项目、库开发2.6 综合示例// complete_demo.cpp -- 第2章综合示例 #include iostream #include cmath // 函数原型 double circleArea(double radius); void printResult(double r, double area); int main() { using namespace std; cout 圆面积计算器 endl; cout 请输入圆的半径; double radius; cin radius; double area circleArea(radius); printResult(radius, area); return 0; } double circleArea(double radius) { const double PI 3.14159265358979; return PI * radius * radius; } void printResult(double r, double area) { using namespace std; cout 半径为 r 的圆面积为 area endl; }运行示例 圆面积计算器 请输入圆的半径5 半径为 5 的圆面积为78.5398 第2章知识点总结知识点核心要点程序结构#include→main()→ 语句 →return 0注释//单行/* */多行头文件C标准头文件无.h后缀cout使用运算符输出endl换行并刷新缓冲区cin使用运算符输入变量先声明后使用声明时最好初始化函数原型声明 → 调用 → 定义void表示无返回值命名空间std::前缀或using namespace std;returnmain()返回0表示正常结束