C++学习笔记1
1.1 编程的本质
“程序员”预先编写一系列命令,控制程序执行特定的任务。
“程序员”就是“上帝”。
失去控制?除非程序有Bug...
计算机时钟BUG导致美军海湾战争中,唯一过百的伤亡(死28人,伤100余人)
BUG事件:1991年2月,美军的爱国者反导弹系统失效,未能拦截伊拉克的飞毛腿导弹,宰赫兰基地被炸毁,场炸死28个美国士兵,炸伤100多人,造成美军海湾战争中唯一一次伤亡超过百人的重大损失。
BUG分析:爱国者反导弹系统,每工作1小时,系统时钟延时3ms左右,当时已经连续工作了100小时,延时达到三分之一秒!飞毛腿导弹足以击中目标了!
需要关机重启,战事太急,没时间关机 :-(
编程,就是使用程序员的思维,来控制计算机做事情。
1.1 极简的C/C++ 语言语法规则
仅记原始规则,把握编程的本质
原始的规则:
- 各“语法单位”(组成部分)使用任意个(至少1个)分隔符隔开。
分隔符有:空格,或tab键,或换行符。
int main(void)
int
main(void) 都是合法的。
intmain(void) 是非法的。
- 必须使用英文输入法输入(仅双引号括起来的“字符串”中可使用中文)
- 每条代码的后面使用 ;表示这个指令代码结束。
- #include等预处理指令,必须一条指令占一行
其他规则不需记忆,在后面的项目实践中掌握。
无论如何,只要遵循最基本的原则, 代码就是合法的, 就能编译执行.
懂得最基本的规则之后, 再追求优雅风格的代码(高逼格风格)
再次强调:
不要刻意记忆C++的语法规则(记也没有意义)
初学时,仅掌握最基本的语法规则即可!
1.1 头文件的使用
为什么要使用头文件
程序如戏
程序中有很多元素(std::cout, system), 都是一个个演员
但是他们之间都互不认识, 但是却要一起合作, 强行编译, 就会导致错误!
得预先介绍他们, 知道他们各自的名号和用法
解决方案:
包含相应的头文件! (头文件中, 含有相关元素的介绍说明)
std::cout 头文件: iostream
system 头文件: Windows.h
#include <Windows.h> 表示把文件Windows.h中的所有内容拷贝(复制)到“这里”。
头文件的查找路径
#include <Windows.h>
<>表示,从编译器默认的路径中去找文件stdio.h
这个默认路径,取决于编译器。不同平台下不同编译器的路径都不相同。
这个默认路径下,已经包含了c标准库所需要的所有头文件。
使用C++标准库的头文件使用该方式。
#include “mytest.h”
“”表示从当前目录下寻找文件mytest.h
如果在当前目录下找不到,再从编译器默认的路径中查找。
使用用户自定义的头文件使用该方式。
头文件的位置
要求放在文件的最前面。
#include 的作用是,把相关的声明拷贝到这个文件内,
所以都习惯把#include 放到文件的最前面。
1.1 程序从哪里开始执行-main函数
人生,就是一个程序。在不同的阶段,做不同的事。
每件事,就是一个函数。
每个人的人生都不相同,
以不同的顺序,做不同的事(相当于调用不同的“函数”),
但是都是从“出生”开始.
每个软件也各不相同,包含不同的函数,但是都是从main函数开始:
main函数的要求:
返回类型 函数名称(函数的参数){
函数体
}
main函数的作用
main函数是程序的唯一入口。
也就是说,程序运行时,首先从main函数开始执行。
一个程序,必须要有一个main函数,而且也只能有一个main函数。
main函数的格式
格式1:
int main(void) {
}
格式2:
具体用法在后面的函数部分,再详细讲解
int main(int argc , char* argv) {
}
main函数的返回值
main函数应该用return返回一个int类型数据,也就是说,必须返回一个整数。
一般用法:
程序成功结束,则main函数返回0
程序有异常,则返回一个大于0的整数。
1.2 使用其他函数
真正强大的人,总是善于使用各种资源。
使用已有的函数,来完成自己的工作,而不是一切都由自己来实现。
IT格言:不要重复制造轮子 ---《人月神话》
解读:尽可能使用已经开发好的函数。
有哪些“其它函数”?
1)C标准库
2)C++标准库
3)第三方开源框架
4)公司内已经开发好的函数
5)程序员自己定义的函数