字节 byte   和字 word     通常 一个字节由8 位构成 而一个字由32 位构成 或者说是4个字节 但是 工作站操作系统现在正在朝64 位系统的方向转换

预定义的内置的[built in]  或称基本的primitive] 数据类型

字符型char   通常用来表示单个字符和小整数 它可以用一个机器字节来表示 ([可以] 非 [就是])
       整型int   短整型short    长整型long    它们分别代表不同长度的整数值。 典型情况下 short 以半个字表示; int 以一个机器字表示; 而long 为一个或两个机器字。 在32 位机器中 int 和long 通常长度相同

浮点型float   双精度double 和长双精度long double       分别表示单精度浮点数 双精度浮点数和扩展精度的浮点数值 典型情况下 float 为一个字double 是两个字       long double 为三个或四个字 。    char short int 和long 称为整值类型 integral type

关于文字常量

当一个数值 例如1        出现在程序中时 它被称为文字常量 literal constant

称之为文字 是因为我们只能以它的值的形式指代它;称之为 常量 是因为它的值不能被改变。3.14159 是double 型的文字常量

文字常量是不可寻址的[ nonaddressable  ]      尽管它的值也存储在机器内存的某个地方 但是我们没有办法访问它们的地址

在缺省情况下, 整型文字常量被当作是一个int 型的有符号值

 

       20    // 十进制 024   // 八进制 0x14  // 十六进制 

在整型文字常量前面 加一个0  ,该值将被解释成一个 八进制数;而在前面加一个0x 或0X 则会使一个整型文字常量被解释成十六进制数

文字常量后面加一个  L  或 l    字母L 的大写形式或者小写形式 将其指定为long 类型;后面加上 u  或 U     将其指定为一个无符号数;

指定无符号long 型的文字常量:1024UL     8Lu均可

一部分不可打印的字符 单引号 双引号以及反斜杠可以用如下的转义序列来表示 转义序列以反斜杠开头 
        newline(换行符)        \n 
        horizontal tab(水平制表键) \t 
        vertical tab(垂直制表键)\v 
        backspace(退格键)      \b 
        carriage return (回车键)   \r 
        formfeed (进纸键)      \f 
        alert (beel) (响铃符)      \a 
        backslash (反斜杠键)        \\ 
        question mark (问号)      \? 
        single quote (单引号)      \' 
        double quote (双引号)      \"

\ooo 
    这里的ooo 代表三个八进制数字组成的序列

字符文字前面可以加 L    例如 L'a'    这称为宽字符文字 类型为wchar_t    宽字符常量用来支持某些语言的字符集合 如汉语,日语。这些语言中的某些字符不能用单个字符来表示

如果两个字符串或宽字符串在程序中相邻 C++就会把它们连接在一起 并在最后加上一个空字符 例如

        "two"      "some" 

它的输出结果是 twosome

如果将一个字符串常量与一个宽字符串常量连接起来 例如

        // 不建议这样使用 "two"      L"some"

结果是未定义的 undefined

一个字符串文字可以扩展到多行 在一行的最后加上一个反斜杠 表明字符串文字在下一行继续

"a multi-line \ string literal signals its \ continuation with a backslash" 

字符串文字的类型是常量字符数组 它由字符串文字本身以及编译器加上的表示结束的 空 null   字符构成 例如

 'A' 

代表单个字符 A         下面则表示单个字符A 后面跟一个空字符

 "A " 

空字符是C 和C++用来标记字符串结束的符号

关于变量的左值与右值

1.它的数据值 存储在某个内存地址中 有时这个值也被称为对象的右值 rvalue ,读做are-value。我们也可认为右值的意思是被读取的值read value   文字常量和变量都可被用作右值

2.它的地址值——即 存储数据值的那块内存的地址 它有时被称为变量的左值 lvalue ,读作ell-value   我们也可认为左值的意思是位置值 location value  文字常量不能被用作左值

ch = ch - 'O';

在表达式的右边 ch 和文字字符常量用作右值 在左边 ch 用作左值

对象声明 declaration

作用是使程序知道该对象的类型和名字 它由关键字extern以及跟在后面的对象类型以及对象的名字构成

extern string fileName;
ifstream input_file( fileName ); 

不是定义 不会引起内存分配 实际上 它只是说明了在程序之外的某处有这个变量的定义

关于初始值

如果一个变量是在全局域[ global scope  ] 内定义的 那么系统会保证给它提供初始值0 ;如果变量是在局部域 local scope      内定义的 或是通过new 表达式动态分配的 则系统不会向它提供初始值0       这些对象被称为是未初始化的 uninitialized

支持两种形式的初始化 第一种形式是使用赋值操作符的显式语法形式

        int ival = 1024; string project = "Fantasia 2000"; 

在隐式形式中 初始值被放在括号中

        int ival( 1024 ); string project( "Fantasia 2001" ); 

每种内置数据类型都支持一种特殊的构造函数语法 可将对象初始化为0,例如

        // 设置 ival为 0  dval为 0.0 int ival = int(); 
        double dval = double(); 

《C++ Primer》读书笔记(2,3.1,3.2)相关推荐

  1. C++ Primer 读书笔记及知识点延伸 chapter2

    C++ Primer 读书笔记及知识点延伸 chapter2 wchar_t宽字符,char16_t  char32_t Unicode字符 ,long long C++11新增加 符号类型前面加上u ...

  2. C++ Primer 读书笔记04

    C++ Primer 读书笔记04 关联容器 pair 动态内存 静态内存 栈内存 智能指针 shared_ptr 直接管理内存 new 空悬指针 智能指针陷阱 unique_ptr weak_ptr ...

  3. C++ Primer读书笔记(从后向前看)

    (从后向前看) 标题:重载函数再论 重载函数是C++提出来的概念,但是在C中却未必没有.比如"1+3"和"1.0+3.0",虽然都是加法,做的却不是同的操作:编 ...

  4. c++primer读书笔记

    c++全局变量无声明.多次定义会冲突.利用命名空间 c++四种cast操作符的区别 1.static_cast,支持子类指针到父类指针的转换,并根据实际情况调整指针的值,反过来也支持,但会给出编译警告 ...

  5. C++ Primer读书笔记

    (从后向前看) 标题:重载函数再论 重载函数是C++提出来的概念,但是在C中却未必没有.比如"1+3"和"1.0+3.0",虽然都是加法,做的却不是同的操作:编 ...

  6. 【C++ Primer读书笔记】第1章 - 开始

    读书笔记,后续会不断补充修改,欢迎交流.

  7. C++ Primer 读书笔记 (1)

    我的<C++ Primer>扉页记着购书的日期和地点:C++ Primer 2009.11.28购于西区求索.那时对于这本厚书一直心怀敬畏,仿佛是眼前的一座大山.那时,虽然已经大四,但是对 ...

  8. C++入门复习指南,C++Primer读书笔记

    1.碎碎念 因为高中的缘故差不多一年多没写代码了,最近备考CCPC,发现很多东西都忘记了,所以简要复习一下. 我的C++启蒙来自C Primer PLUS,具体记不清了,大概五六年前甚至更早吧,那时候 ...

  9. C++Primer读书笔记----第二章变量和基本类型

    前段时间学习iphone开发,非常力不从心,很多C/C++的类库代码看不明白.大学的时候都学过C/C++,但是基本上忘光了,现在做C#开发,经常写出来一些性能低下的代码,究其原因就是原理掌握不扎实,乱 ...

  10. C++ Primer 读书笔记及知识点延伸 chapter1

    C++ Primer  chapter 1 main函数的返回值在正常情况下为0,程序错误时可能返回其他的值 . 在编译程序时,命令行只需要包含源文件的参数 //test.hpp void test( ...

最新文章

  1. 一线专家谈2020年人工智能落地趋势
  2. mongodb studio 3t 破解无限使用脚本
  3. GDCM: 简单的QIDO-RS往返测试gdcm :: JSON的实现
  4. 建站手册-语义网:语义网
  5. Get data from file(xxx.png) failed!
  6. .NET Core开发实战(第22课:异常处理中间件:区分真异常与逻辑异常)--学习笔记(下)...
  7. 【转】医学影像调窗技术!!!!
  8. 小程序开发(3)-之wx.request封装
  9. nodejs连接池连接mysql
  10. 【图神经网络入门】GAT图注意力网络
  11. 在VB中使用API“SHFileOperation”删除文件的三个问题
  12. Linux网络系统之配置域名与主机名映射和常见网络命令
  13. 【回炉重造】—— 异常
  14. APP接入友盟统计,不上报数据问题
  15. 抓取 google 搜索结果
  16. 9.0 OTA升级logo不更新,输入法不更新
  17. 嵌入式系统求职回忆录1
  18. xlsx怎么设置行高列宽_Excel里面如何调整行高和列宽
  19. 基于深度神经网络的中药材识别
  20. uos应用_统信 UOS 私有化应用商店解决方案发布,支持应用分发管理

热门文章

  1. 高德地图根据经纬度获取地址信息
  2. 【XML文件数据预处理】获取xml文件中所有标签名称及数量||提取某个特定标签的数量||生成包含某个标签的图片索引txt并复制图片到指定文件夹
  3. 根据文件夹中的图片数据集生成.txt文件标签
  4. 因背调面试凉了,你有什么看法?
  5. 快速掌握LODOP打印使用方法
  6. Python项目实战 2.1:创建用户子应用.展示用户注册
  7. 三星给Galaxy Z Fold5上了IP58级别防护:还没摸到旗舰防护级别
  8. 科技查新报告该怎么写?
  9. 什么是跳板机?XShell如何通过跳板机连接内网机器?
  10. 关于数据一致性的思考