Part2 开始进入程序设计吧 简单程序设计
作业巨多仍然锲而不舍的更新第二部分!其实写这个学习笔记主要目的还是自己学习的哈(估计也没人看…)还有好几篇论文没写…
那么就愉快的进入后面的学习吧(一点都不愉快!)
因为需要准备考试,大部分内容来自老师的PPT…
简单程序设计主要知识点
- C++语言概述
- 基本数据类型和表达式
- 数据的输入与输出
- 算法的基本控制结构
- 自定义数据类型
C++语言概述: 历史背景什么的跳过。特点:1.C语言超集 2.强类型语言 3.表达能力强 4.支持运算符重载 5.抽象能力强 6.内存管理高效 7.异常处理加强 8.支持名字空间 9.非纯面向对象的语言
来看看程序员的第一个程序吧
#include <iostream>//头文件
/*可以使用C头文件 iostream是C++文件,不用.h扩展名*/
using namespace std;//引入C++标准名字空间std
/*名字空间:可以由程序员命名的作用域
每个命名空间中放入一些相关实体,变量,函数,对象,类,以解决同名冲突问题*/
int main(){//只有一个main函数
cout<<"Hello World!"<<endl;//标准输出流
return 0;//返回0,表示程序正常执行结束
}
字符集,词法记号,标识符(字母下划线开头,区分大小写,无空格,不能与关键字同名)
基本数据类型和表达式: 见下图
常量:程序中取值不变的量,分为
- 整型:后缀L长型,U无符号
- 浮点型:后缀F(float)L长型(long double)
- 字符型:有些不能直接输入的需要转义 \r \f \b…
- 字符串:字符串在内存中的存放按照字符次序存放,末尾加\0
- 布尔:false true
变量:取值可变 使用前声明类型和名称,先定义后使用,还有左值右值一些细节…
数据类型 变量名1,变量名2,...
数据类型 变量名 = 初始值;
变量位置决定作用范围
- 全局变量:所有函数外面
- 局部变量:函数内部或复合语句内部
符号常量:
const 数据类型 常量名 = 常量值;
运算符和表达式:
- 基本:+、-、*、/、% 自增自减运算符++i和i++的效果不完全相同
int i = 1;
int j = 1;
cout<<i++<<endl;//输出1
cout<<++j<<endl;//输出2
- 复合:+=、-=、*=、/=、%=、<<=、等优先级和=相同
- 逗号:
a=3*5,a*4//先算第一个,再算第二个最终结果为第二个运算结束之后的值
- 逻辑运算符:优先级 高→低 < <= > >=→== != !→&&→||(&&和||有奇妙的短路特性,即计算机判断A&&(或||)B时,通常判断A是false(或true)不用再判断第二个)
- 条件运算符:(这个我用的相当少)
表达式1?表达式2:表达式3//先解1,1T后解2,2的值为结果;1F后解3,3的值为结果
优先级高于赋值运算符,低于逻辑运算符 - sizeof:计算某种类型对象在内存中所占的字节数
- 位运算:&与 |或 ^异或 ~取反 << >>位移 具体操作不详述
严肃的优先级问题
优先级 | 运算符 |
---|---|
1 | [ ]、()、.、->、后置++、- - |
2 | 前置++、- -、sizeof、&、*、+、-(正负号)、~、! |
3 | 强制类型转换 |
4 | . *、-> * |
5 | *、/、% |
6 | +、- |
7 | <<、>> |
8 | <、>、<=、>= |
9 | ==、!= |
10 | & |
11 | ^ |
12 | | |
13 | && |
14 | || |
15 | ?: |
16 | =、*=、/=、%=、+=、-=、<<=、>>=、&=、^=、|= |
17 | , |
数据类型转换
- 隐含转换:编译系统自动转换,低类型转换为高类型
char short int unsigned long unsigned long float double |
---|
→ |
数据的输入和输出:
输入输出:cin、cout
算法的基本控制结构:
顺序结构、选择结构、循环结构
if选择结构:
- if
- 嵌套if
- if … else if
这个挺简单的不详细描述了
switch:
switch(表达式)
{
case 常量表达式1:语句1;//后面应该加break;不然switch结构会往后面的case执行
case 常量表达式2:语句2;
...
default:语句n+1;//如果没有case满足就从default开始执行
}
循环结构:
- while符合条件直接进入循环
- do while执行一次再进入循环
- for(初始语句;表达式1(如果满足);表达式2(执行完语句之后执行表达式2))
循环的控制条件存在一个稳定性的问题,一般来说用i = 5这种类似的表达式控制循环会导致不稳定,所以会用i <= 5或者>= 5等类似的取代 - 死循环for(;;)while(true)
选择和循环嵌套
break;continue循环体中用于跳过本次循环进入下一次循环;goto不常用;
typedef:这个用于花式命名
typedef long long ll;
enum枚举
enum 类型名 {变量值列表};
enum Weekday {SUN,MON,TUE,WED,THU,FRI,SAT};
琐碎的知识到这里基本上结束了,习题答案等有时间再整理吧…一共36题真不是一时半会能写完的。
马上要考试了,下一次更新应该在考完试将近7月份的时候了。