C+语言程序设计 第二讲C++编程基础 潘建瑜@MATH.ECNU
1 第二讲 C++ 编程基础 C++ 语言程序设计 潘建瑜@MATH.ECNU
C++语言概述 口C++的发展 ▣C++源程序结构与书写规范 口C++编译器和集成开发环境 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 1 C++ 语言概述 C++ 的发展 C++ 源程序结构与书写规范 C++ 编译器和集成开发环境
C++语言的发展 http://isocpp.org/std/status ▣ C++是从C语言发展演变而来,可以看成是C的超集 口1980年由Bjarne Stroustrup开发创建 口1983年正式取名C++,1989年开始C++的标准化工作 口1994年制定了ANSI C++标准草案 口1998年由1SO批准为国际标准,通称C++98 口2011年发布C++11,增加了多线程支持、通用编程支持等,标准库也有很多变化 口目前的C++最新标准是C++20 Recent milestones:C++23 done,out for final ballot;C++26 work has begun 口C++可用于软件/系统/游戏开发、单片机和嵌入式系统等 4 http://math.ecnu.edu.cn/-jypan
http://math.ecnu.edu.cn/~jypan C++ 语言的发展 C++ 是从 C 语言发展演变而来,可以看成是 C 的超集 1980 年由 Bjarne Stroustrup 开发创建 1983 年正式取名 C++,1989 年开始 C++ 的标准化工作 1994 年制定了 ANSI C++ 标准草案 1998 年由 ISO 批准为国际标准,通称 C++98 2011 年发布 C++11, 增加了多线程支持、通用编程支持等, 标准库也有很多变化 目前的 C++ 最新标准是 C++20 Recent milestones: C++23 done, out for final ballot; C++26 work has begun C++ 可用于软件/系统/游戏开发、单片机和嵌入式系统等 http://isocpp.org/std/status 4
1989 1990 1991 1992 1993 1994 1995 1996 1997 C++98 2002 2003 2004 2005 2006 2007 2008 2009 2010 C++0g/11 Library TR1 Decimal TR (not merged) Math Special Functions IS 2011 2012 2013 2014 2015 2016 2017 2018 2019 Aug Feb Oct Apr Sep Feb Jun Nov May Oct Mar Jun Nov Mar Jul Nov Mar Jun Nov Feb Jul Nov Feb IS-trunk C++14 C++17 C+t20 TSes-feature File System Networking Reflection branches for Lib Fundamentals 1 Lib Fundamentals 2 Lib Fundamentals 3 separate release Parallelism 1 then merge Parallelism 2 Concepts Ranges Tk Memory inottomegel Modules Concurrency 1 Coroutines Arrays (abandoned) 2020 2021 2022 20232024 2025 2026 2027 2028 Jun Nov Feb Jun Oct Feb Jul Nov Mar Jun Nov May Oct Mar Jun Nov Mar Jul Nov Mar Jun Nov Feb Jul Nov Feb C++23 C++26 C++29 Lib Fundamentals 3 Tk Memory 2 Concurrency 2 5
5
程序示例分析 #include/预处理指令,载入头文件 using namespace std;//使用标准的命名空间 int main() 主函数 cout:标准输出,通常指屏幕 cout <<"Hello!"<<endl; <<:插入 cout <<"Welcome to C++!"<<endl; return 0; end1:换行并刷新流 6 http://math.ecnu.edu.cn/-jypan
http://math.ecnu.edu.cn/~jypan 程序示例分析 #include // 预处理指令,载入头文件 using namespace std; // 使用标准的命名空间 int main() { cout << "Hello!" << endl; cout << "Welcome to C++! " << endl; return 0; } 主函数 cout :标准输出,通常指屏幕 << :插入 endl :换行并刷新流 6
C++元程序结构 #include using namespace std; int main() cout <<"Hello!"<<endl; cout <"Welcome to C++!"<endl; return 0; C+源程序结构: ·一个C+源程序由一个或多个源文件组成 每个源文件可由一个或多个函数组成 一个源程序有且只能有一个main函数,即主函数 ,程序执行从main开始,在main中结束 。源程序中可以有预处理命令,通常应放在源文件或源程序的最前面 一行可以写多个语句,一个语句可以分几行书写 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan C++元程序结构 #include using namespace std; int main() { cout << "Hello!" << endl; cout << "Welcome to C++! " << endl; return 0; } C++ 源程序结构: ► 一个 C++ 源程序由一个或多个源文件组成 ► 每个源文件可由一个或多个函数组成 ► 一个源程序有且只能有一个 main 函数,即主函数 ► 程序执行从 main 开始,在 main 中结束 ► 源程序中可以有预处理命令,通常应放在源文件或源程序的最前面 ► 一行可以写多个语句,一个语句可以分几行书写 7
C++程序书写规范 每条语句以分号“;”结尾,(预处理命令,函数头和花括号”}”之后除外) 口标识符、关键字之间用空格隔开(若已有明显的间隔符,可不加) ▣区分大小写 口注释:/和/**/ ▣适当的缩进:锯齿形书写格式 口所有标点符号必须在英文状态下输入 代码书写建议: 多{}要对齐 ·一行写一个语句,一个语句写一行 缩进一致,可使用TAB 有合适的空行,有足够的注释 8 http://math.ecnu.edu.cn/-jypan
http://math.ecnu.edu.cn/~jypan C++ 程序书写规范 每条语句以分号“;”结尾,(预处理命令,函数头和花括号“ } ”之后除外) 标识符、关键字之间用空格隔开(若已有明显的间隔符,可不加) 区分大小写 注释:// 和 /* */ 适当的缩进:锯齿形书写格式 所有标点符号必须在英文状态下输入 代码书写建议: ► { } 要对齐 ► 一行写一个语句,一个语句写一行 ► 缩进一致,可使用 TAB ► 有合适的空行,有足够的注释 8
C++编译器 什么是编译器 口编译器就是将“高级语言”翻译为“机器语言”的程序 一个现代编译器的主要工作流程: 链接 源代码 编译 目标代码 可执行程序 常见的C+编译器 口Visual C++微软,Windows平台最流行,集成在Visual Studio中 ▣GNUC++ 开源免费,Linux/Unix平台首选,非常优秀 ▣ Intel C++ Intel编译器,对自家硬件支持很好,Wim/Linux都适用 Clang LLVM框架下的C家族语言编译器 9 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan C++ 编译器 什么是编译器 编译器就是将“高级语言”翻译为“机器语言”的程序 一个现代编译器的主要工作流程: 源代码 目标代码 可执行程序 编译 链接 常见的 C++ 编译器 Visual C++ 微软,Windows平台最流行,集成在 Visual Studio 中 GNU C++ 开源免费,Linux/Unix 平台首选,非常优秀 Intel C++ Intel 编译器,对自家硬件支持很好,Win/Linux 都适用 Clang LLVM 框架下的 C 家族语言编译器 9
IDE Integrated Development Environment DE(集成开发环境) 口用于程序开发的应用软件,一般包括编辑器、编译器、调试器和图形界面等 口常见的C++集成开发环境 -DevC+:小巧免费,功能简单,适合初学者(gcc-4.9.2,C++11) -VS Code+MinGW:微软免费DE+GCC(微软有配置方法指导) -Code:Blocks:开源,全功能跨平台集成开发环境,免费 -Visual Studio:微软出品,大而全,有社区版(免费) -Qt Creator:跨平台开发环境,Qt为应用程序开发提供一站式解决方案 10 http://math.ecnu.edu.cn/-jypan
http://math.ecnu.edu.cn/~jypan IDE IDE (集成开发环境) Integrated Development Environment 用于程序开发的应用软件,一般包括编辑器、编译器、调试器和图形界面等 常见的 C++ 集成开发环境 - Dev C++ :小巧免费,功能简单,适合初学者 (gcc-4.9.2,C++ 11) - VS Code + MinGW:微软免费IDE + GCC(微软有配置方法指导) - Code::Blocks :开源,全功能跨平台集成开发环境,免费 - Visual Studio :微软出品,大而全,有社区版(免费) - Qt Creator :跨平台开发环境,Qt 为应用程序开发提供一站式解决方案 10
2 C++编程基础 口C++字符集:标识符,关键字 ▣C++数据类型与类型转换 口变量、常量、符号常量 ▣ 运算符、运算优先级 ▣ 语句与表达式 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 2 C++ 编程基础 C++ 字符集:标识符,关键字 C++ 数据类型与类型转换 变量、常量、符号常量 运算符、运算优先级 语句与表达式