从头回顾C++的基础知识(一)

C++基础(一)

基本数据类型

引用与指针

const

ifndef


C++常用的基本数据类型

数据类型含义
bool布尔类型
char字符
wchar_t宽字符
short短整型
int整形
long长整型
float单精度浮点数
double双精度浮点数
void空类型
  • 要注意string不是基本数据类型,而是一个类,使用string定义变量要使用string头文件
  • void类型不对应具体的值,在函数不返回任何值时可以用空类型作为返回值

引用与指针

  • 引用(reference)为对象起了另外一个名字,引用本身并不是一个对象,所以对引用的操作实际上是在对与引用绑定的对象操作。
  • 引用的定义方式:int i=1,&refi=i;//其中refi是一个引用,与i绑定。
  • 指针(pointer)也是实现对对象间接访问的一种方式。但指针本身也是一个对象。
  • 指针的定义方式:int i=1,*p=i;//这里可以说p是指向 i 的一个指针。
  • C++11新特性:nullptr:空指针。

引用与指针的区别:

引用指针
引用不可以为空指针可以为空
引用只是一个别名指针是一个实体,有自己的内存空间
引用必须初始化指针不是必须要初始化
引用自初始化后不可改变非常指针在生命周期内可以指向不同的对象
sizeof(引用)获得所引用对象的大小sizeof(指针)获得指针的大小
对引用操作是对值操作对指针操作是对指针本身操作
引用只能有一级指针可以有多级
存在指向指针的引用不存在指向引用的指针

关于const

  • const类型限制只能在const类型的对象上执行不改变其内容的操作。
  • const可以修饰变量,指针,函数参数及成员函数。
  • C++11新特性:可以使用constexpr声明变量来验证变量值是否是常量表达式

const与指针

  • const int *p=i; //意味p指向的是一个常量,则i不可被改变。
  • int * const p=i;//意味p是一个常量指针,则p只可能指向i
  • const int * const p;//意味着常量指针指向一个常量,p的指向与i都不可以被改变

关于类型

  • C++11新标准:auto:声明变量,由编译器来推断变量类型
auto i=3,*p=i,j=3.14;//编译器会自动分析i,p,j的类型
  • C++11新标准:decltype:返回操作数的数据类型。
int i;
decltype(i) j=1;//j的类型就是i的类型
decltype(fun()) k;//k的类型是fun()的返回类型
int &p=i;
decltype(p) q;//注意:这个语句是错误的,p是一个引用,q也是,所以必须初始化。
  • 使用预处理变量保护头文件不被多次包含。
#ifndef Head_H//只有第一次包含head.h时会执行endif之前的代码。
#define Head_H
//----------
#endif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值