• C++ Primer 学习笔记 第二章


      第一部分 基本语言

      基本上所有的语言都提供下列特征:内置数据类型,表达式和语句,变量,控制结构,函数
      C++是 静态类型语言,在编译时执行类型检查,C++重要特征是类,程序员可以使用类自定义数据类型,类类型
      C++标准库 利用内置类型、自定义类类型,实现了一个具有丰富类类型 和 相关函数的标准库

      第二章 变量和基本类型

       类型是所有程序的基础,类型告诉我们 数据代表什么意思 以及可以对数据执行哪些操作

      C++语言,定义了几种基本类型:字符型、整形、浮点型等,还提供了可用于自定义数据类型的机制,还能修改已有的类型以形成复合类型

      2.1. 基本内置类型

      C++定义了一组 表示整形、浮点型、单个字符和布尔型的 算术类型,另外还定义了一种称为void的特殊类型(通常作为无返回值函数的返回类型,void类型没有对应的值)

      8位的块作为一个字节byte32位或4个字节作为一个字word,short类型为半个机器字长,int类型为一个机器字长,long类型为一个或两个机器字长,无符号型只能表示大于或等于0的数所有的位都表示数值把负值赋值给unsigned对象是完全合法的其结果是  该负数 对该类型的取值个数 求模后的值,float型保证6位有效数字,double至少可以保证10位有效数字,char类型通常用来存储字符而不用于计算

      2.2 字面值常量

      定义字面值整数常量可以使用三种进制中的任一种:十进制、八进制、十六进制
      定义长整型时字面常量,应该使用大写字母L,小写的很容易和数值1混淆,定义unsigned类型,在数值后加字母U
      定义浮点字面常量,指数用E,加F表示单精度,加L表示双精度
      布尔字面值:单词true 和 false

      在一行的末尾加一反斜线符号可将此行和下一行当作同一行处理反斜线符号必须是该行的尾字符不允许其后面有注释或空格  

      2.3 变量

      常常把 变量称为"变量" 或 "对象"(object),左值出现在赋值语句的左边或右边,右值只能出现在赋值的右边,对象就是内存中具有类型的区域计算左值表达式就会产生对象

      除了关键字,C++标准还保留了 一组标识符 用于标准库,标识符不能包含二个连续的下划线,也不能以下划线开头后面紧跟字一个大写字母,有些标识符不能以下划线开头 

      变量名一般用小写字母,多个词的标识符,每个词之间加一个下划线或每个内嵌的第一个字母都大写
      初始化不是赋值,指创建变量并给它赋初值,赋值  则是  擦除对象的当前值并用新值代替
      进行初始化的成员函数称为构造函数
      在函数体外定义的内置类型变量都初始化成0在函数体里定义的内置类型变量不进行自动初始化建议每个内置类型的对象都要初始化

      每个类最好有一个默认构造函数,没有默认构造函数的,每个定义都必须提供显式的初始化

        2.3.5 变量的定义和声明  

      C++程序通常由许多文件组成,为了让多个文件访问相同的变量,C++区分了声明和定义

      变量的 定义,用于为变量分配存储空间,还可以为变量指定初始值,变量必须且仅能定义一次,而且在使用变量之前必须定义或声明变量

      声明 用于向程序表明变量的类型和名字,定义也是声明,当定义变量时声明了它的类型和名字,可以通过使用extern关键字声明变量名而不定义它,如果声明有初始化,那么它可以被当作是定义,即使声明标记为extern,只有当extern声明位于函数外部时,才可以含有初始化式

      任何在多个文件中使用的变量 都需要有与定义分离的声明,在这种情况下,一个文件含有变量的定义使用该变量的其他文件则包含该变量的声明(而不是定义)

      局部变量屏蔽全局变量,通常把一个对象定义在它首次使用的地方是一个很好的办法
      常量在定义后不能被修改,所以定义时必须初始化,如:const int bufSize = 512;
      在全局作用域声明的 const 变量是定义该对象的文件的局部变量,如果const变量前面加上 extern ,整个程序都可以访问,如 extern const int bufSize = 512;

       非const变量默认为extern要使const变量能够在其他的文件中访问,必须显式的指定它为extern

      2.5 引用

      引用只是它绑定的对象的另外一个名字,当引用初始化后,只要该引用存在,它就保持绑定到初始化时指定的对象,不可能将引用绑定到另外一个对象

      const 引用是指向const对象的引用,如:const int ival = 1024; const int &refVal = ival;,又如:const int &refVal = 1024;,const引用可以绑定到不同但相关的类型的对象或绑定到右值

      2.7 枚举成员是常量

      用来初始化枚举成员的值必须是一个常量表达式,如:enum Weapon { ARROW = 1, SWORD, BOMB },常量表达式是编译器在编译时就能够计算出结果的整形表达式整形字面常量是常量表达式

      枚举成员可以初始化枚举类型的对象,如:Weapon  warriorWeapon = ARROW;

      枚举成员值可以是不唯一的,不能改变枚举成员的值,枚举成员本身就是一个常量表达式,枚举类型的对象的初始化或赋值,只能通过其枚举成员或 同一枚举类型的其他对象来进行

      2.8 类类型

      默认情况下,struct 的成员为public,而class的成员为private,类定义了该类型的对象包含的数据 和该类型对象可以执行的操作 ,类体可以为空,类体定义了组成该类型的数据和操作,这些操作和数据是类的一部分,也称为类的成员,操作是成员函数 ,而数据则称为数据成员

       2.9 预处理器的简单介绍

      头文件应该含有保护符,即使这些文件不会被其他头文件包含,避免头文件包含多次

      如:
      #ifndef SALESITEM_H
      #define SALESITEM_H
      //...
      #endif 

      每种类型  都定义了其存储空间要求  和可以 在该类型的所有对象上执行的操作,类型可以为const或非const

      术语:access label(访问标号,如,public),arithmetic type(算术类型),direct-initialization(直接初始化),enumeration(枚举),enumerator(枚举成员),const reference(const引用)constant expression(常量表达式),escape sequence(转义字符),global scope(全局作用域),header guard(头文件保护符),implementation(实现),preprocessor(预处理器),liter constant(字面值常量),separate compilation(分别编译)

  • 相关阅读:
    阻塞 io 非阻塞 io 学习笔记
    nodejs 不是单线程
    最短路径之迪杰斯特拉(Dijkstra)算法
    迷宫问题求解之“A*搜索”(二)
    迷宫问题求解之“穷举+回溯”(一)
    CnBlogs自定义博客样式
    .NET中Main函数使用小技巧
    .NET中的枚举(Enum)
    DotNetBar的使用—(界面风格)
    .NET4.5新特性async和await修饰符实现异步编程
  • 原文地址:https://www.cnblogs.com/GoldenEllipsis/p/16571415.html
Copyright © 2020-2023  润新知