《基于Linux的C++》学习笔记(基于“学堂在线”乔林老师课程)(第一、二讲)
第一讲 C/C++ 基本语法元素
一 程 序
程序:一系列遵循一定规则并能正确完成特定功能的代码或指令序列,通常包括数据结构与算法两部分 。
二 C 程序& C++ 程序介绍
#include<stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
} #include<iostream>
using namespace std:
int main()
{
cout << “Hello World!” << end;
return 0;
}
三 数据类型
整数类型 int
signed
unsigned
long
short
浮点数类型: double 或 float
小数表示法 :例: 3.1416、 –2.718281828
科学计数法 :例: 3.14e3 = 3.14103、 –2.7E–2 = –2.710–2
四 变量
先定义再使用 定义格式: 变量类型 变量名称[, 变量名称]; 单独定义例: int a; 同时定义例: double b, c;
变量的四大基本特征(VANT) 变量总是具有值(value) 变量总是与内存中的地址(address) 相对应 变量总是具有名称(name) 变量总是具有确定的类型(type)
五 宏&常量
文字?魔数也!
常量的定义:程序执行期间其值不可改变的量 例: const int zero = 0; 格式: const 数据类型 常量名称 = 初始值;
常量与变量 定义常量时必须进行初始化 常量不可改变值,其他与变量同 常量初始值必须能够在编译期间计算出来
宏定义 #define 指令:预处理命令 例: #define PI 3.14 一旦定义,可以代替常量使用 宏定义不是常量 程序中应优先使用常量而不是宏
六 操作符与操作数
操作符分类 一元操作符:只有单个操作数,例如负号
二元操作数:带有两个操作数,例如加减乘除等
三元操作数:带有三个操作数,例如条件表达式
操作符的优先级与结合性 优先级确定计算顺序,结合性确定计算方向
第二讲 程序流程控制
一 布尔数据
1 枚举类型
枚举类型的声明 格式: enum 枚举名 { 元素名1, 元素名2, …, 元素名n }; 例: enum MONTH{ JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC };
枚举类型声明中的元素为枚举文字,不是变量
枚举类型变量的定义 例: MONTH month;
2 自定义类型
自定义类型的格式 格式: typedef 原类型标识 新类型名; 例: typedef int DWORD;
3 布尔类型
bool 类型
取值: false、 true
bool 量的定义
定义: bool modified; 赋值: modified = true;
4 关系表达式 & 逻辑表达式
关系操作符
大于(>)、等于(==)、小于(<)、不大于(<=)、不小于 (>=)、不等于(!=)
逻辑操作符
逻辑与(&&)、逻辑或(||)、逻辑非(!)
关系操作符与逻辑操作符的优先级
从高到低顺序:逻辑非“!”;小于“<”、不小于“>=”、大于“>”、不大于“<=”(同级);等于“==”、不等于“!=”(同级);逻辑与“&&”;逻辑或“||”
二 if分支结构
格式一: if( 条件表达式 ) { 语句序列 }
格式二: if( 条件表达式 ) { 语句序列 1 } else { 语句序列 2 }
格式三: if( 条件表达式 1 ) { 语句序列 1 } else if( 条件表达式 2 ) { 语句序列 2 } … else { 语句序列 n }
三 switch分支结构
1 格式
switch( 表达式 ) { case 常数表达式 1: 语句序列 1 case 常数表达式 2: 语句序列 2 ┇ case 常数表达式 n: 语句序列 n default: 默认语句序列 }
2 流程图

1 格式
while ( 表达式 ) 循环体
2 流程图

五 for循环结构
1 格式
for( 初始化表达式; 条件表达式; 步进表达式 ) 循环体
2 流程图

3 递增递减表达式
前缀递增递减 (++i) :先递增递减,再参与运算
后缀递增递减 (i++) :先参与运算,再递增递减
六 哨兵
break(未完)
七 练习

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int a, b, c;
for(a = 1;a < 6;a++)
{
for(c=a;c < 5 ;c++)
{
cout << " ";
}
for(b = 1;b < 2*a;b++)
{
cout << "*" ;
}
cout << endl;
}
return 0;
} #include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int a, b, c;
for(a = 5;a >= 1;a--)
{
for(c=a;c < 5 ;c++)
{
cout << " ";
}
for(b = 1;b < 2*a;b++)
{
cout << "*" ;
}
cout << endl;
}
return 0;
}
