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

unsigned比signed更高级

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

强转的三种方法

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

auto关键字自动确定类型

auto a=100;     //int
auto b=10.0;    //double
auto 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; //valid
cout<<band; //4,不显示指定的时候就为下标值
band = black; //invalid

enum 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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值