第二章 变量和基本类型

本文深入解析了C++中的复合类型、引用、指针的概念及用法,包括引用的定义、初始化、操作,指针的定义、初始化、解引用,以及const关键字在引用和指针上的应用。同时介绍了类型处理方法如typedef、using、auto和decltype,以及头文件保护符的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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、在程序中每个头文件都建议使用头文件保护符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值