unsigned比signed更高级
int a=-1;
undigned int b=0;
4294967295
强转的三种方法
(typeName) value
typeName (value)
static_cast<typeName> value
auto关键字自动确定类型
auto a=100;
auto b=10.0;
auto iter=Vector.begin();
cin,get,getline的区别
cin本身以空格,换行符,制表符作为一次输入结束, 输入结束后换行符仍存在缓存区,开头输入自动跳过换行符(无须清空换行符)
string str;
getline(cin,str);
char s[20];
cin.getline(s,20);
string str;
get(cin,str);
char s[20];
cin.get(s,20);
cin.get()可以直接读取一个字符串
ch=cin.get();
enum枚举,创建方式和结构体相似
enum spectrum {red,orange,yellow,green,blue,violet,indigo,ultraviolet};
spectrum band;
band = blue;
cout<<band;
band = black;
enum bigstep {first,second=1000,third};
数据名解释为第一个元素的地址,而&数组名获取的是整个数组的地址
基于范围的一种循环
double prices[5]={1,2,3,4,5}
for (double x : prices)
cout<<x<<" ";
指针函数和函数指针
//先用*和array结合起来这是一个指针,指向一个类型为 int [4]的数组
int (*array)[4]
//array会先和[4]合起来,这是一个数组,类型是int *
int *array[4]
函数名是指向该函数的指针
void fn (int a ){
cout<<a<<endl;
}
void (*ptr_fn)(int a );
ptr_fn=fn;
ptr_fn=&fn;
//使用方式,下面两者一样
(*ptr_fn)(5);
ptr_fn(5);