1 从helloworld谈起
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
return 0;
}
视频里面在linux上用codelite作为ide,本人在Windows上用codeblock。
函数:能被反复调用的代码,可以接收输入,进行处理并/或产生输出
- 返回类型:表示了返回结果的类型,可以为void。示例中为int
- 函数名:用于函数调用
- 形参列表:表示函数接收的参数类型,可以为空、void、无形参。
- 函数体:具体的执行逻辑
main函数: 特殊函数,整个程序的入口
- 返回类型为int,表示程序的返回值,通常用0来表示正常返回
- 形参列表可以为空
什么是类型?
C++语言引入的概念,为一段存储空间赋予实际意义。
语句?
表明了执行的操作
2 系统IO
#include <> 和 #include"":双引号是属于我们当前项目源文件;尖括号是引用标准库。源文件引用一般有.h,标准库中的没有。
iostream:
- 标准库所提供的IO接口,与用户交互。cin(输入)/cout/cerr/clog
- 输出流区别:输出目标;是否立即刷新缓冲区(cout,clog不刷新)
- endl 换行且刷新缓冲区。/n换行且不刷新缓冲区
名字空间:std::cout
防止名称冲突:不同的人写了名字相同的函数名,可以定义名字空间来调用其中函数。
用法:名字空间::函数 或者using namespace namespace1:以下都用namespace1
std名字空间:C++标准库定义的
名字空间与名称改编(name mangling)。链接的时候会把文件名字改编,每个编译器都会mangling和demangling。但是不会改编main,因为改编是担心函数在别的名字空间里面会冲突,而main不需要,main是唯一的。
3 猜数字与控制流
if语句:用于分支选择
if(y==0)和if(y=0) 一个等号是赋值,两个等号是判断是否相等 会返回布尔值
if(y = 42) 会返回42,非0整形都是true,所以一定进。
可以将常量放在左边,防止误用
while 语句:用于循环执行
4 结构体与自定义数据类型
struct Point
{
int x;
int y;
void IncX()
{
x = x + 1;
}
};
可以作为函数的参数或者返回值,函数也可以引入到结构体内部。