第一、二章

1. cin原来也可以以空格间隔输入(输入包括string)

2.键盘上Ctrl+Z,可以表示文件结束符 

3.文件重定向addItem <infile> outfile

4.char分为:char(具体表现为后面两种之一, 取决于编译器)、signed char、unsigned char

5.赋值给  无符号类型  超过范围即为值对 范围求模的余数 ;赋值给  有符号类型  超过范围 未定义(undefined)

6.初始化与赋值是不同的概念,初始化的含义是创建变量的时候赋予一个初始值,赋值则把当前值擦除,用新值替代

7.定义于   任何函数体之外   变量被 初始化为0,建议初始化内置类型变量 ,防止未初始化造成的错误

8.extern double pi = 3.1415926为定义,而非声明,任何在函数体  内部试图初始化extern关键字的变量  ,将引发错误

9.用户自定义标示符 不能采用双下划线或下划线加大写字母;  函数体外部  不能 下划线开头

2.3复合类型(引用,指针等)

    引用为对象起了另一名字,定义引用时,会跟初始值 绑定(bind)在一起,因此无法另引用指向另一个引用,所以引用必须初始化。引用即别名,非对象。

    除2种情况,引用类型需与绑定对象严格匹配

     指针指向的对象类型必须与赋值类型相同

    void *指针,可以存放任意对象地址,但没法访问内存中的对象,因为不知道其类型

    阅读一条比较复杂的指针或引用,可以从右到左阅读该变量的定义  (很有帮助的一条tip)

2.4const限定符

    const的变量不是一个常量表达式,可以在声明,和定义都添加extern关键字,extern const int buffer = func() ---定义 ; extern const int buffer---声明;

    const引用可以绑定到一个非常量对象上

    const int * r3 = &i;       int * const r4 = &i;       r3 = &j;       r4 = &j;这段表明了const int * 与 int * const 的区别,一个是表明指针指向变量的之不可变,一个表明,int类型指针里的内容(地址)不可变,也即只能指向同一个地址

    底层const不能忽略顶层const不受影响,赋值的时候

    个人感悟:无论是const int * p = &i,const int &q = i,其实都只是对改指针或引用的声明,表明不能通过修改 *p的值,或q的值来达到修改i的值,i的值能否被修改取决于i属于什么类型,如果为非常量值,则它可以被其他的变量修改。

    constexpr类型定义,通过一个常量表达式,或constexpr函数(容易在编译期间得出结果)

2.5处理类型
    
    typedef char * pstring 
    const pstring cstr = 0 与const char * cstr=0,完全不一样,因为pstring已经成为了一种类型,参考const int a,表明此指针是不可变的

    auto类型:需要初始化,赋值的时候类型会自动忽略顶层const(跟一般状况一样 )

     decltype类型指示符,返回操作数数据类型
    解引用,原来得到的是引用!!!所以,int * p = &i ,  decltype(*p)得到的类型类型其实为int &
        解引用操作符是:*。对于其定义书上并没有给出明确的定义,不过其意思是对其得到操作数(必须为指针类型)所指变量的引用。如有如下代码:
int ival;
int *ip=&ival;
int &iref=*ip;//*ip就是ival的引用。
其等价于:
int &iref=ival;
    使用decltype时,如果变了带有括号,则代表返回对其引用的类型,例如decltype( ( i ) ),返回的是int &类型,定义对象的时候必须初始化

    class中的成员默认private,struct则默认public。

    int *p1 = nullptr; 等价于int *p2 = 0 ; 等价于int *p3 = NULL; (难道0地址即表示空指针。。。)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值