第二章 变量和基本类型

来源:互联网 发布:怎样修改淘宝支付密码 编辑:程序博客网 时间:2024/05/17 01:07

1、C++中的复合类型

        引用:

        int i = 2;

        int &j = i;

        变量j为变量i的引用。引用的定义时,引用的类型要和与之绑定的对象类型严格匹配,且定义时必须绑定对象而非是响应的字面值常量。和 int *j = &i; (此时&为取地址符) 是一样的。

        指针:

        指针无须在定义时赋初值。指针的值是指向对象的地址。取指针指向的对象时用*p(此时*为解引用符)。在指针的定义时建议全部初始化。

        引用不是对象,而指针是对象,它分配内存空间。

 

2、cstdlib是C++里面的一个常用函数库,等价于C中的<stdlib.h>。其中包含了NULL等宏。此外预处理不属于命名空间std。

 

3、const(常量):分为顶层const和底层const

        对const的引用格式:const int ci = 1;    const int &ri = ci;

        对const的引用的初始化方式:int i = 1;    const int &r1 = i;    const int &r2 = 1;    const int &r3 = ri * 2;    (对const的引用不能绑定到一个临时量上)

        指向const的指针格式:const double pi = 3.14;    const double *ppi = &pi;

        const指针:int errNum = 0;    int *const curErr = &errNum;    const double pi = 3.14;    const double *ppi = &pi;    常量指针不能修改指针,但是如果指针指向的对象是非常量的,那么可以通过*解引用符修改指向对象的值。

        如果确定变量是一个常量表达式,那么可以把它声明为constexpr类型。

 

4、处理类型

        ①typedef(类型别名) 

    typedef double wages;// wages是double的同义词    typedef wages base, *p;// base是double的同义词,p是double* 的同义词

        using(别名声明,C++11中新增)

    using wages = double;// wages是double的同义词

        ②auto(类型说明符,C++11中新增)

    auto item = val1 + val2;// item的类型由val1和val2相加的结果进行推断    auto i = 0, *p = &i;// 正确:i是整型、p是整型指针    auto i = 0, pi = 3.14;// 错误:i和pi的类型不一致

        ③decltype(类型指示符,C++11中新增)

    decltype(fn()) sum = x;// sum的类型由函数fn()的返回值决定

 

5、在程序中每个头文件都建议使用头文件保护符

0 0
原创粉丝点击