最近复习C++相关内容,决定在这里记录自己复习的过程。 以前写过部分文字,但是没有坚持连续写,因此学完后

基本又忘光啦,主要是没有实践,这一次决定自学完后,在这里在复习一遍增强自己的记忆和理解程度。

一、基本内置类型

  C++语言内置了一些数据类型,主要有两大类: 整型和浮点型。

整型又有:  bool型、char型、wchar_t型、short型,int型,long int型。

浮点型有: float型, double型、long double型(扩展双精度型)。

  我们知道不同的数据类型决定了不同的内存占用bit和可以进行的操作。

1、bool型

  bool型是C++语言扩展的类型,在C语言里面是没有bool类型的,其取值为两个值: false 和 true。

值得注意的是:bool类型的两个取值都是用小写的字母表示的,这一点需要注意。

  在C++中如果一个bool型的对象取值为 false,就表示逻辑结果为假; 如果bool型对象的取值为true

就表示逻辑结果为真。

Exp:

bool  bVar;
bVar = false; if(bVar)
{
std::cout<<"It is true"<<std::endl;
}
else
{
std::cout<<"It is false"<<std::endl;
}

  这样就会执行 else分支的语句,输出: It is false。

  C++继承了C语言的特性: 如果一个表达式的值为零,则逻辑结果为假; 如果一个表达式的值非零,则逻辑结果

为真。

要点1:  在C++中有些表达式其逻辑结果可能不是那么容易判定为0还是非0, 这样就很难判定其逻辑结果的真假,

需要引起注意。

  例如:  std::cin<<x;   如果输入流读到文件的结尾,那么返回逻辑结果就为假, 如果还没有读到文件的结尾,那么

其返回结果就为真。

  要点2: bool类型变量在内存中需要1个字节表示。

  bool型变量可以进行与、或、非的逻辑运算,这些在运算符的时候讨论。

2、字符型

  C++提供两种不同位宽的字符型类型:char、wchar_t

  char型占用8bit, wchar_t占用16bit(用于表示宽字符集的字符)。

  char型字符字面值是用单引号引起来的字符,如:

       'A',  'b', '"'(双引号)。

  wchar_t型字符字面值也是用单引号引起来的字符,但是需要在前面加上字幕L, 如:

      L'B',   L'C', L'b',  L'"'(双引号)。

  C++和C语言一样提供了一些其他的方式来表示字符字面值。 主要有三种方式: 利用8进制的数字来表示

字符字面值、利用16进制的数字表示字符字面值、转义字符序列。

  A: 8进制表示字符字面值

  用反斜杠后面跟上8进制数字表示字符字面值, 如

    \7   响铃符   、  \12  换行符 、  \40 空格符等

  B:16进制表示字符字面值

  反斜杠后面跟上x或者X,然后在跟上16进制数字表示字符字面值, 如:

    \x7   响铃符、   \xC  换行符、   \x28 空格符等

  C:转义字符序列

  在C++语言中,有些字符具有特殊的意义,就不能用单引号来表示,例如不可打印字符、反斜杠、控制字符、

单引号、双引号、疑问号、换行符、水平制表符、垂直制表符、回车符、进纸符等。

  \n  换行符

  \t  水平制表符

   \t  垂直制表符

  \b  退格控制符

  \r  回车符

  \f      进纸符

  \a  报警符,响铃符

  \\  反斜杠

  \?  疑问符

  \'  单引号

  \"  双引号

3、整数型

  short  int、 int、和 long int型 。其中short int 、long int 可以省略int,用 short 和long表示。

    short: 最小占用16bit

    int:最小占用16bit

    long:最小占用32bit

  这这三种类型占用的位宽由系统决定, 而且目前一般int是 32bit宽度, 因此在设计程序的时候,不能

假设占用的bit数,而要用sizeof 操作符来求解占用的位宽。

  整数型的字面值有三种表示方式: 十进制、八进制、十六进制。

  例如:    20           十进制

       024         八进制 ,前面用前导0开始表示这是一个八进制整数字面值

         0x14      十六进制,前面用前导0x或者0X开始表示这是一个十六进制整数字面值。

  整数型数有正数和负数之分;  能表示大于、小于和等于0的整数型称为有符号整型,用signed表示;

不能表示小于0的整数类型为无符号型(表示的数大于或者等于0),用unsigned表示。

  默认整数字面值是有符号的int型,   可以在整数字面值后面加上修饰的字符改变整数字面值的类型。

可以添加的修饰符有: u/U 、  l/L .  例如:

    20u:  无符号int型,

    20L: 有符号长整型

   20UL: 无符号长整型

要注意的是: 整数字面值没有short类型,这个需要注意。

4、字符串字面值

  连续的字符序列在C++中有一个叫法: 字符串字面值。 字符串字面值就是用双引号括起来的连续字符序列。

Exp:

  字符串:  "I am a C++ fresh man"

    上面就是一个字符串字面值。

  C++的字符串字面值继承了C语言的特性,会自动在字符串的字符序列后面加上一个 '\0' 的字符,因此在

内存中会多占用1个字节。

  对于wchar_t 类型的字符串字面值同样会占用对一个字符需要的空间,就是: 2byte。

   字符串中有一个特别需要注意的字符就是: %,这个字符需要引起大家的注意。

如果你是调用C语言的标准库printf()函数输出的话,那么在输出"%%" 时只会输

出一个 %; 而如果用cout的话,则会输出两个 %%。

  要点: 字符串字面值的连接,  两个以空格、制表符、换行符分隔的两个字符串字面值会连接成一个字符串字面值。

例如:

  std::cout<<"abcdefg"

        "12345678"

        "volcanol";

  这个输出就相当于:

    std::cout<<"abcdefg""12345678""volcanol";

  也相当于:

    std::cout<<"abcdefg12345678volcanol";

  这个是比较特殊的一个特性,在C语言中也可以这样,一般用的比较少。

5、浮点型

  浮点型有三种: float、double和long double。三种类型的区别是占用的有效位数不一样。

float       32bit, 有效位为6位小数

   double    64bit, 有效位为10位小数

   long        64bit, 最小有效位为10位小数

  浮点型字面值有两种表示方法: 十进制和科学计数法。

     1.     十进制的double型字面值

     1.e0  科学计数法的double型字面值。

  默认的浮点数字面值为double类型。如果要显示的设置为float型,就需要在字面值后面加上一个f或者F。

例如:

    3.14F,  2.f   都是float型的浮点型字面值。

  要点:  也许大家注意到了上面的1.  和 2.f   , 这里如果出现了小数点,即使后面没有小数那么也是浮点型

数据,这一点通常大家可能会遗忘。

  暂时说这么多,待续......

C++_系列自学课程_第_3_课_变量和基本类型_《C++ Primer 第四版》的更多相关文章

  1. C++_系列自学课程_第_7_课_数组_《C++ Primer 第四版》

    说到数组,大家应该都很熟悉,在C.Pascal.Java等语言中,都有数组的概念.在C++中也提供了对数组的支持.数组简单来说就是一堆相同 数据类型对象的集合. 这里要把握住两个要点: 相同的数据类型 ...

  2. C++_系列自学课程_第_6_课_bitset集_《C++ Primer 第四版》

    在C语言中要对一个整数的某一个位进行操作需要用到很多的技巧.这种情况在C++里面通过标准库提供的一个抽象数据类型 bitset得到了改善. 一.标准库bitset类型 1.bitset的作用 bits ...

  3. C++_系列自学课程_第_5_课_vector容器_《C++ Primer 第四版》

    再一次遇到 vector 这个单词; 每一次见到这个单词都感觉这个单词非常的 "高大上"; 数字遇到vector马上就可以360度旋转: 当 "电" 遇到vec ...

  4. C++_系列自学课程_第_12_课_结构体

    #include <iostream> #include <string> using namespace std; struct CDAccount { double bal ...

  5. C++_系列自学课程_第_12_课_语句_《C++ Primer 第四版》

    前面的文章说完了表达式和类型转换的部分内容,在我参考的书里面,接下来讨论的是各种语句,包括:顺序语句.声明语句.复合语句(块语句).语句作用域 .if语句.while语句.for语句.do...whi ...

  6. C++_系列自学课程_第_11_课_类型转换_《C++ Primer 第四版》

    上次说了关于表达式的一些内容,说到还有一些关于数据类型转换的内容,今天我们接着八一八C++中的数据类型转换. 一.隐式类型转换 在表达式中,有些操作符可以对多种类型的操作数进行操作, 例如 + 操作符 ...

  7. C++_系列自学课程_第_10_课_表达式_《C++ Primer 第四版》

    程序设计语言中大部分程序都在进行表达式的求值操作, 例如求两个数的和,求一个表达式的逻辑结果,或者通过输入输出表达式语句进行输入和输出. 这里我们对表达式进行讨论. 一.表达式 1.表达式 表达式由一 ...

  8. C++_系列自学课程_第_9_课_C语言风格字符串_《C++ Primer 第四版》

    前面说了写关于数组和指针的内容,这次在这里讨论一下字符串,讨论一下C语言风格的字符串. 在C语言里面我们利用字符数组来对字符串进行处理, 在C++里面我们前面说过一种类类型string可以对字符串进行 ...

  9. C++_系列自学课程_第_8_课_指针和引用_《C++ Primer 第四版》

    C语言最富有迷幻色彩的部分当属指针部分,无论是指针的定义还是指针的意义都可算是C语言中最复杂的内容.指针不但提供给了程序员直接操作硬件部分的操作接口,还提供给了程序员更多灵活的用法.C++继承这一高效 ...

随机推荐

  1. [ASP.NET MVC 小牛之路]13 - Helper Method

    我们平时编程写一些辅助类的时候习惯用“XxxHelper”来命名.同样,在 MVC 中用于生成 Html 元素的辅助类是 System.Web.Mvc 命名空间下的 HtmlHelper,习惯上我们把 ...

  2. Step by Step 创建一个 Web Service

    原创地址:http://www.cnblogs.com/jfzhu/p/4022139.html 转载请注明出处 (一)创建Web Service 创建第一个项目,类型选择ASP.NET Empty ...

  3. Android Drawable 那些不为人知的高效用法

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/43752383,本文出自:[张鸿洋的博客] 1.概述 Drawable在我们平时的 ...

  4. python定时重跑获取数据

    做大数据的童鞋经常会写定时任务跑数据,由于任务之间的依赖(一般都是下游依赖上游的数据产出),所以经常会导致数据获取失败,因为很多人发现数据失败后 都会去查看日志,然后手动去执行自己的任务.下面我实现了 ...

  5. Android混淆代码

    Android代码混淆是必须的,java层代码如果不做混淆等于把源代码送人了.那如何做混淆呢? 之前一般都是提到采用proguard.cfg,但使用新版本ADT后没有这个文件了,取而代之的是progu ...

  6. EntityFramework之你不知道的那些事(七)

    前言 前面一系列几乎都是循序渐进式的进行叙述,似乎脚步走得太快了,于是我开始歇一歇去追寻一些我所不太了解的细枝末节,在此过程中也屡次碰壁,但是唯有如此才能更好的成长,不是吗!希望此文对你亦有帮助. 属 ...

  7. 引用类型-Object类型

    创建Object实例的方式有两种. 第一种是使用new操作符后跟Object构造函数 var person = new Object(); person.name = "liao" ...

  8. MUI APP防止登陆页面出现白屏

    最近在用MUI开发APP,总体效果,在IOS上,是完美的,但是在低端的Android手机上,就会出现性能问题,我个人觉得最严重的是,就是首页,就是APP打开的第一个页面,在iOS上,由于性能高,所以, ...

  9. Ubuntu杂记——Ubuntu下安装VMware

    转战Ubuntu,不知道能坚持多久,但是自己还是要努力把转战过程中的学习到的给记录下来.这次就来记录一下,Ubuntu下如何安装VMware. 就我所知,Linux下有VirtualBox和VMwar ...

  10. geotrellis使用(八)矢量数据栅格化

    目录 前言 栅格化处理 总结 参考链接 一.前言        首先前几天学习了一下Markdown,今天将博客园的编辑器改为Markdown,从编写博客到界面美观明显都清爽多了,也能写出各种样式的东 ...