wchar_t,char16_t,char32_t用于拓展字符集

char和signed char并不一样,由编译器决定类型char表现上述两种中的哪一种

一般long的大小和int无二,如果超过int的范围直接使用long long类型

float比较鸡肋,精度和速度都不如double(在某些机器上),所以小数索性都用double

若值超过无符号类型最大值,则获得的实际值=value%MaxValueOfType;若值超过有符号类型最大值,结果无法预知

算数表达式中若存在无符号类型,则其他运算数自动转化为无符号型,造成错误,而且结果也不可能小于0

以0开头表示八进制数,以0x或0X开头表示十六进制数

字符串等价于字符数组(末尾带有编译器赋予的'\0'),多行表示格式:

  std::cout<<"a really, really long string literal "

       "that spans two lines."<<std::endl;

转义字符

  换行符:\n  横向制表符:\t  响铃符:\a  纵向制表符:\v  退格符:\b  双引号:\"  反斜线:\\  问号:\?  回车符:\r  进纸符:\f

字面值常量的前缀和后缀:

  前缀:u 指定类型 char16_t

     U 指定类型 char32_t

     L  指定类型 wchar_t

     u8 指定类型 char(此前缀仅可用于字符串字面值常量,表示UTF-8)

  后缀:  u或U 指定类型 unsigned及更大

     l或L 指定类型  long及更大

     ll或LL  指定类型  long long及更大

     f或F  指定类型 float(浮点数字面值)

     l或L 指定类型 long double(浮点数字面值)

初始化的形式也可以是:int i={0};(c++11)  int i (0);  int i {0};(c++11)

  其中的花括号初始化法可以确保不存在数据因转化类型造成的丢失(一旦有丢失的风险就会报错)

基本类型的值如果在函数体之外未被初始化,其值为0;

  基本类型的值如果在函数体之内未被初始化,其值不可知,任意对此值的访问将引发错误

仅想声明一个变量而不定义它,使用关键字extern: extern int i;(不定义意味着不申请存储空间且不赋予初始值)

此类名字不可用:fuck__drug,   _Grug,   _drug(函数体外)

允许内层作用域中重新定义外层作用域的名字,反之不可

引用:(通常指左值引用,c++11引入了右值引用的概念)

  例如:int ival=1024;

     int &refVal=ival;(refVal指向ival,认为refVal是ival的一个别名,而且不能再转而指向其他元素,即绑定在一起:你就是我,我就是你)

     若如:int &refVal2;则发生错误,引用声明后必立即初始化,即指向一个对象(字面值不可)

指针:(本身即是对象)

  例如:int *ip1,*ip2;(这里类型是int*,即int型指针,ip1和ip2仅是名字)

     int *p=&ival;(获取ival的地址赋予p,p存放ival的地址)

     int ivalValue=*p(使用解引用符*能访问对象)

     *p=100;(此举使得ival的值为100,   指针指向了对象,也就获得了对对象的操作权)

     int *p3=nullptr;(c++11)(等效于int *p3=0;等效于int *p3=NULL;p3为空指针,不指向任何对象)

void*指针:(可用于存放任意对象的地址,然而不能利用void*指针直接访问对象)

指向指针的引用:int *&r=p;(修饰符从右往左读)

const限定符

  例如:const int buffSize=512;(由于const的修饰,之后禁止再对buffSize赋值)

     const int conExp;(此表达式不合法,必须初始化)

  默认const对象仅在文件内有效,若希望const对象也能在其他文件中使用,则加上extern关键字:

     extern const int bufSize=fcn();

     其他文件调用时:extern const int bufSize;

  对常量的引用必须也是常量,自然地,其值不能变更:

     const int &bufSize1=buffSize;

  然而对一般量的引用也可以是常量,只是不能再通过此常量引用修改其值:

     int i=12;  const int &integ=i;     

  类似地,也有指向常量的指针,用来存放常量的地址而无法通过指针进行更改,而且此种指针可以指向一般量,但也不能借此指针更改其值:

     const int *ptr=&buffSize;

     const int *prt1=&i;

  与一般对象一样,指针自身也可以是常量(除去指针本身的性质外,其常量的特性与一般常量无二):

     int *const ptr2=&i;

     const int *const ptr3=&buffSize;

     (注意,这里第一个const(即底层const)使得ptr3能够指向常量buffSize,而第二个const(即顶层const)则决定指针自身即为常量)

constexpr和常量表达式

   const int A=20;(等号的左边和右边都必须是const值才是常量表达式)

   声明为constexpr的变量必定是常量而且仅能通过常量表达式进行初始化,而且constexpr指针只能指向地址固定的对象或nullptr

    constexpr int mf=20;(c++11)

定义类型别名typedef:

   例如:typedef double wages;(wages是double的同义名)

      typedef wages bunble,*p;(bunble是double的同义名,p是double*的同义名)

      (注意:const p *p1=0;表示p1是常量指针(顶层常量),const double *p2=&i;表示p2是指向常量的指针(底层常量))

   也可以: using SI=Sales_items;(c++11)(SI是Sales_items的同义名)

auto类型说明符:(c++11)(让编译器分析所属的类型)

   例如:auto item=val1+val2;

      auto sz=0,pi=3.14;(不可行,一条语句只能是一种类型)

      auto *p1=&i,&prf=i;(注意将*,&连结在声明符上)

   (注意:auto会忽略顶层const,如果强调顶层const则需要明示:const auto f=ci;)

decltype类型指示符:(c++11)

   例如:decltype( f ( ) ) sum = x;(sum的类型为f()的类型)

      decltype(*p) p2=i;(*p解引用后的类型是int&,故必须初始化)

      decltype( ( i ) ) p3=j;(多一层括号后的类型是int&

c++11允许为数据成员提供类内初始值 

预处理器可以使头文件多次包含仍能正常工作

  #ifndef SALES_DATA_H

  #define SALES_DATA_H

  /*........*/

  #endif

C++Primer 5th Chap2 Variables and basic Types的更多相关文章

  1. [C++] Variables and Basic Types

    Getting Started compile C++ program source $ g++ -o prog grog1.cc run C++ program $ ./prog The libra ...

  2. C++ Variables and Basic Types Notes

    1. Type conversion: If we assign an out-of-range value to an object of unsigned type, the result is ...

  3. C++Primer 5th 练习 12.19

    这阵子真是太忙了, 连续做了四个课设. 当然这并不能作为好久没写博客的借口, 没写博客的主要原因只有一个: 懒. 最近又开始回顾C++的语法与特性(据说C++就是一门需要反复回顾的语言),以及学习C+ ...

  4. TypeScript学习指南第一章--基础数据类型(Basic Types)

    基础数据类型(Basic Types) 为了搭建应用程序,我们需要使用一些基础数据类型比如:numbers,strings,structures,boolean等等. 在TypeScript中除了Ja ...

  5. A Tour of Go Basic types

    Go's basic types are bool string int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr ...

  6. 编译器重复定义错误:error C2371: 'SIZE' : redefinition; different basic types

    我们常常会定义自己工程用的数据类型,可能会与Windows的基本数据类型冲突. vs会报重复定义错误:error C2371: 'SIZE' : redefinition; different bas ...

  7. QML学习【一】Basic Types

      QML入门教程(1) QML是什么? QML是一种描述性的脚本语言,文件格式以.qml结尾.语法格式非常像CSS(参考后文具体例子),但又支持javacript形式的编程控制.它结合了QtDesi ...

  8. 【读书笔记】C++ primer 5th 从入门到自闭(一)

    这几天看了C++ primer 5th的一二章,有很多收获,但是有的地方因为翻译的问题也搞得理解起来颇为难受啊啊啊啊.尤其是const限定符,在C语言并没有这么多复杂的语法,在C++里面语法细节就多的 ...

  9. [GraphQL] Use GraphQL's Object Type for Basic Types

    We can create the most basic components of our GraphQL Schema using GraphQL's Object Types. These ty ...

随机推荐

  1. learning java 推回输入流

    import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import ...

  2. centos gcc 新版本安装的一种方法

    最近出来一个v 语言,打算试用下,但是需要编译,centos 7 gcc 版本太低,一种可选的解决方法 使用Software Collections Software Collections 安装方法 ...

  3. 产品生命周期(Product Life Circle,PLC)

    什么是产品生命周期? 产品生命周期是新产品从开发进入市场到被市场淘汰的整个过程.产品生命周期可分为初创期.成长期.成熟期.衰退期. 产品生命周期有什么用? 在产品不同的生命阶段,公司的业务目的都不同. ...

  4. GoCN每日新闻(2019-10-03)

    GoCN每日新闻(2019-10-03) 国庆专辑:GopherChina祝大家国庆节快乐 GoCN每日新闻(2019-10-03) 1. 垃圾回收器如何监控你的应用程序 https://medium ...

  5. 「ZJOI2019」开关

    传送门 Description 有一些一开始全都是关的开关,每次随机选择一个(每个开关概率不同)开关并改变它的状态,问达到目标状态的期望步数 Solution  \(P=\sum_{i=1}^{n}p ...

  6. OpenFOAM——平行平板间具有相对运动(库埃特流)

    本算例翻译整理自:http://the-foam-house5.webnode.es/products/chapter-1-plane-parallel-plates-case/ 这个算例研究了一个距 ...

  7. (三)Cisco dhcp snooping实例1-单交换机(DHCP服务器和DHCP客户端位于同一VLAN)

    环境:cisco dhcp server和客户端都属于vlan27,dhcp server 接在交换机G0/1,客户端接在交换机的G0/2 cisco dhcp server相关配置 ip dhcp ...

  8. Mybatis(下)

    Mybatis(下) 一.MaBatis核心配置文件 Mybatis 中文文档 Mybatis 中文文档 1. properties 定义属性及读取属性文件,取的时候用 $(name) ,name 为 ...

  9. Java_jdbc 基础笔记之九 数据库连接 (查询Customer对象的方法)

    /** * * 写一个查询Customer对象的方法 * */ public Customer getCustomer(String sql, Object... args) { Customer c ...

  10. ElementUi tree 指定节点是否显示复选框

    场景:树的内容是省份下面的城市有酒店 需求:只能多选酒店(为了删除它们),至于为啥不能选省份或者城市更加灵活的去删除相应酒店,这你得去问后台0.0,他只弄了根据酒店id去删除.嗯,连创建酒店的时候级联 ...