从 数据中心主义 转向 对象中心主义
解决大程序开发问题
范型编程
优雅编程
每个C,C++程序, 只有1个 main函数
必须有1个, 只能有1个, 除非写的C/C++的库
预编译指令, 在编译前, 封装进去
, 表示 转义开始, n, 表示换行
C++提供了一个全局对象, cout
复杂的输出, 不如 printf
预编译指令
namespace, 名空
这个名空间的名字, 叫 std, 标准名空间
C++标准库的名字, 都在 标准名空间中, 比如cout, endl
std:: 名解析操作符
endl, endline, 结束这一行, 换行
cin, 和 cout一样, 也是 全局对象
由1个或多个函数组成
具有惟一一个主函数main
程序执行 由 主函数开始, 其他函数由 主函数调用 或 间接调用
程序执行流程 与 函数定义顺序无关
每个函数 包含 函数头 与 函数体 两部分
C/C++包含大量库函数 和 算法, 可直接使用
编辑 源代码(源文件 和 头文件)
源文件, main.cpp, a.cpp
如果是.c
编译器 会 看是 .cpp, 还是.c文件, 选择不同方式编译
至于Linux下, 看你是 使用的事 gcc编译器, 还是 g++编译器
头文件.h, 或者没有.h
编译, 产生目标文件, 二进制代码
链接, 将 函数库中的 二进制代码 和 目标文件中的 二进制代码, 链接生成 可执行文件
可执行文件, 运行, 测试
编译
gcc, 编译c程序
g++, 编译C++程序
示例
g++ main.cpp
编译 和 链接, 通过g++, 一步弄完
编译没问题, 就链接
执行
缺省可执行文件 ./a.out
在这个目录下, 生成 可执行文件
因为, 可执行文件目录, 不包括 当前目录
这节, 体会了 在 Linux下, 命令行窗口, 编辑, 编译, 链接, 执行
整数类型
操作数, 文字, 量, 函数调用, 括号
操作符, 运算逻辑
C/C++, 想定义, 再使用
变量4个基本特职工
1, 变量有值
2, 变量与内存中低至对象
3, 变量总是有名称
4, 类型
程序中淡出出现的值
科学计数法
转义序列
程序执行期间, 岂止 不可改变的量
const 数据类型 常量名称 = 初始值;
=, 初始化符号
设值得惟一常喝,
常量的意义
解决 直接出现的文字, 无法解释其意义的问题
const double pi = 3.14;
初始化表达式, 必须在 编译的时候, 就可以算出结果, 明确要求
函数调用的 栈框架
一元操作符
二元操作符
三元操作符
C++中, 操作符, 多, 优先级复杂
搞不清楚, 加括号, 不影响 效率
简单语句
符合语句
空语句, 单独出现的 ;
目的, 满足程序特定语法规则的要求 ; 作为 站位标记
cout
cin
增强可独享, 可维护性
注释
/**/
//
同一种注释标记, 不可以嵌套
c/c++, 代码, 使用 ascii码
不能数字打头,
标识符, 区分大小写
宏本身并不是 常量, 在 编译的时候, 查找 PI, 用 后面的文本全部替换, 替换完一遍后, 才开始编译
有了 const关键字 可以定义常量之后, 我们很少再使用宏来定义 像这样 宏的文字
C++代码, 优先使用常量, 而不是 宏
宏的目的 和 意义 和 常量非常类似, 就是增强 程序的 可读性 和 程序的可维护性
整数除法, 除法就是整数运算, 小数部分忽略
浮点数除法, 把 被除数, 和 除数, 任意一个换成 float, double, 就可以得到浮点数
注意顺序
x *= + b;
建议, 左缩进
每行代码, 不超过80字符
函数代码不超过60行, 太长 拆成2个函数
不要乱变
参考链接
https://www.xuetangx.com/learn/THU08061000323/THU08061000323/7754037/video/12727655