这里对我的课本进行一个简要的摘录:
第二章 c++简单程序设计
1、运算符与表达式
①三目运算符
格式 (表达式1)?(表达式2) : (表达式3)
②sizeof运算符,用于计算某种类型的对象在内存中所占的字节数。
③ 位运算
包含:
a 、按位与(&)
b、按位或(|)
c、按位异或(^)【对应位相同,则该位的运算结果为0,对应位不同,则该位的运算结果为1】
d、按位取反(~)【对一个二进制的每一位取反。例如,025:0000010101 ~025:1111101010】
e、移位(包含左移运算<<和右移运算>>例如,a>>2的值为-2(a为-8),2<<1的值为4
④运算符优先级与结合性,写代码时一定要注意表达式中运算符的优先级!!!
⑤ 类型转换操作符(强制转换、显式)
a,<类型说明符>(表达式)
b、const_cast<类型说明符>
c、dynamic_cast<类型说明符>
d、reinterpret_cast<类型说明符>
e、static_cast<类型说明符>
ps:这种转换是不安全的,因为它是一次性的,变量所在的内存单元中的值并未真正改变,再次使用时仍然是原来的类型。
2、数据的输入与输出(必须包含iomanip头文件)
常用的I/O流类库操纵符
dec 十进制表示
hex 十六进制表示
oct 八进制表示
ws 提取空白符
endl 插入换行符
ends 插入空字符
setprecision(int) 设置浮点数的小数位数(包括小数点)
setw(int)设置域宽
3、控制语句
① break
② continue
③ goto(使程序的执行流程跳转到语句标号所指定的语句)
例如可用于跳出多重循环,也可以前跳或者后跳,也可以跳出switch,或者在case之间进行跳转
#include<iostream>
using namespace std;
int main()
{
int x,sum=0;
L1:cout<<"x=";
cin>>x;
if(x==-1)
goto L2;
else
sum+=x;
goto L1;
L2:cout<<"sum="<<sum<<endl;
}
可以想象,它的存在会破坏程序的结构,所以应该少用或不用。
4、自定义数据类型
typedef声明
将一个标识符声明成某个数据类型的别名,然后将这个标识符当做数据类型使用。
语法形式:
typedef 已有类型名 新类型名表;
typedef double Area,Volume;
typedef int Natural;
Natural i1,i2;
Area a;
Volume v;
第三章 函数
递归
例如
① 计算从n个人中选择K个人
#include<iostream>
using namespace std;
int combine(int n,int k)
{
int m;
if(n==k||k==0)
return 1;
else if(k>n)
return 0;
else
return combine(n-1,k)+combine(n-1,k-1);
}
int main()
{
int n,k;
cin>>n>>k;
cout<<combine(n,k);
return 0;
}
(注意排列组合的公式:c(n,m)=c(n-1,m-1)+c(n-1,m))