c++primer plus阅读笔记(一)

来源:互联网 发布:蓝鸥学校java培训 编辑:程序博客网 时间:2024/05/16 06:03

unsigned比signed更高级

int a=-1;undigned int b=0;cout<<a+b<<endl-----------------------4294967295

强转的三种方法

(typeName) value // ctypeName (value) // c++static_cast<typeName> value //更加严格的强转

auto关键字自动确定类型

auto a=100;     //intauto b=10.0;    //doubleauto iter=Vector.begin();   //vector<>::iterator

cin,get,getline的区别

cin本身以空格,换行符,制表符作为一次输入结束, 输入结束后换行符仍存在缓存区,开头输入自动跳过换行符(无须清空换行符)

cin.getline(array,max_input_size)以换行符作为输入结束,丢弃换行符,前input_size-1存储输入字符串,剩余空间为’\0’

string str;getline(cin,str);char s[20];cin.getline(s,20);

cin.get(array,max_input_size)以换行符作为输入结束,换行符仍存在缓存区,前input_size-1存储输入字符串,剩余空间为’\0’

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; //validcout<<band; //4,不显示指定的时候就为下标值band = black; //invalidenum bigstep {first,second=1000,third};//显示指定值

数据名解释为第一个元素的地址,而&数组名获取的是整个数组的地址

基于范围的一种循环

double prices[5]={1,2,3,4,5}for (double x : prices)    cout<<x<<" ";   //1 2 3 4 5

指针函数和函数指针

//先用*和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);
原创粉丝点击