类型是所有程序的基础;

   C++ 定义了几种基本类型: 字符型(char 和 wchar_t),整型(short int long bool),浮点型(float doubel) 并且提供自定义数据类型的机制  class  struct ;;

标准库正是采用了这些机制 才定义了许多更为复杂的数据类型如: 可变长字符串 string  vector 等;

对象 就是内存中具有类型的区域;具体点说:计算左值表达式就会产生对象 ;

--------  关于初始化

初始化 分为   复制初始化  与  直接初始化

复制初始化语法使用等于(=) ,直接初始化则是把初始化式放在括号中;;

int value(1024) ; // 直接初始化

int value = 1024 ; // 复制初始化

C++ 中 “初始化 不是 赋值”  初始化是指创建变量 并且 给它 赋初始值, 而赋值是指擦除对象的当前值并用新的值代替;// 故 复制初始化实际上是两步动作,直接初始化语法更加灵活效率更高;

对于内置类型来说,赋值初始化 与 直接初始化、并没有太大的差别

但对于 类类型的对象来说,有些初始化仅能用直接初始化来完成; 定义如何进行初始化的成员函数称为 构造函数, 一个类可以定义多个构造函数,每一个构造函数必须接受不同数目或者不同类型的参数;

-------  变量初始化的规则:

1.内置类型变量的初始化

内置类型变量是否自动初始化取决与变量定义的位置;

在函数体外 定义的变量都 初始化为 0

在函数体内 定义的变量  不进行自动初始化;

2.类类型变量的初始化

使用显式的初始化式

使用默认的构造函数

不管变量在哪定义,默认函数都会被使用;有些类类型没有默认构造函数,对于这些 类型来说,每个定义都必须提供显式的初始化式; 没有初始值是根本不可能定义这种类型的变量的;

------ ---- 声明 与 定义

变量的定义用于为变量分配存储空间, 还可以为变量指定初始值,但是变量有且仅有一个定义;(定义一般伴随着  初始化式)

声明  用于向程序表明变量的类型 和 名字。定义也是一种声明   (使用extern 但是并没有 初始化式)

extern int pi = 3.1415 ;    //  定义

extern int pi ;                   // 声明 但并没有定义;

---------- const 限定符 ;

const 限定符 提供将一个变量转化为常量的办法;         // 用const 修饰 即表明 不可被修改;

默认情况:

在全局作用域里定义非const变量时,它在整个程序中都可以被访问;

全局作用域中声明的const变量 是定义该对象文件的局部变量,此变量只存在这个文件中,不能被其他文件访问

// 默认情况下   类似与 c语言 static 的作用域;

*非const 变量 默认是extern , 想要在其他文件中访问cosnt 常量  必须 显式的指定为 extern ;

------------  引用 ;

引用就是对象另一个名字;引用主要是 用作函数的形式参数  在前面添加  &符号来定义;

*** 引用 必须用与该引用同类型的对象初始化;      int val = 1025 ;      int &var = val ;     // OK

引用仅仅是名字的不同,但是指向同一个地址,同一个对象;   同数据类型的对象相互关联;

----------- typedef

用来定义类型的同义词; typedef  int  qint32 ;  // 使用qint32 来代表int数据类型;

----------- 枚举; enum

为某些属性定义一组可选择的值;

默认:第一个枚举成员 赋值为0,  后面的每一个枚举都比前面的大1;

enum stat { input , output , append   } ;   // 默认  input = 0 ; output = 1 ; append = 2  ;

//  enum stat { input =2 , output , append } ;  // 其他成员将 隐式初始化 ;

-------- struct  与 calss

class  第一个访问标识 前面 所有的成员 都是 private:

struct   第一个标识前面  都有的成员都是 public ;  // 这是 class  与  struc 唯一差别;

   

            

    

《C++ Primer》 ---- 关于变量 与 基本类型的更多相关文章

  1. 再读《C++ Primer》——变量和基本类型

    刚上大学那时,几个室友一块买了本<C++ Primer>第4版,看了一遍后就没怎么碰了,偶尔拿出来翻翻,当作工具书使用.后来知道有第5版了,一直觉得内容差不多吧.直到最近,再读其中的一些内 ...

  2. c++ primer 2 变量和基本类型

    2.1 基本内置类型 基本内置类型是C++“自带”的类型,区别于标准库定义的类型.使用时不需要应用标准库就可以使用,我们可以理解为数字型有下面这些 整形:就是整数或者是没有小数位的数.它包括bool( ...

  3. C++ Primer 读书笔记 第2章 变量和基本类型

    C++ Primer 第二章 变量和基本类型 2.1 基本内置类型 C++定义了一组表示整数.浮点数.单个字符和布尔值的算术类型(arithmetic type),此外还定义了Void类型. 算术类型 ...

  4. C++ Primer 第2章 变量和基本类型

    C++ Primer 第2章 变量和基本类型 C Primer 第2章 变量和基本类型 1 基本内置类型 算数类型 类型转换 字面值常量 2 变量 变量定义 3 复合类型 引用d左引用 指针d 4 c ...

  5. C++ Primer 笔记(2)第二章 变量与基本类型

    第二章 变量与基本类型 1.基本内置类型包括算术类型和空类型,算术类型分为两类:整型(包括字符和布尔类型)和浮点型: 2.布尔类型(bool)的取值是真(true)或者假(false): 3.字面值常 ...

  6. C++ Primer : 第二章:变量和基本类型(1)

    变量和基本类型之第一篇:基本内置类型和变量 一. (1) C++定义了一套包括算数类型和空类型,这些类型有:布尔类型bool,字符类型char,宽字符类型wchar_t,Unicode字符char16 ...

  7. C++ Primer 学习笔记_5_变量和基本类型(续2)

     变量和基本类型 七.枚举 枚举不但定义了整数常量集,并且还把它们聚集成组. 枚举与简单的const常量相比孰优孰劣, 通过以下一段代码. 一看便知: enum {input, output, a ...

  8. <<C++ Primer>> 第二章 变量和基本类型 术语表

    术语表 第 2 章 变量和基本类型 地址(address): 是一个数字,根据它可以找到内存中的一个字节    别名生命(alias declaration): 为另一种类型定义一个同义词:使用 &q ...

  9. C++拾遗(一)——变量和基本类型

    今天看到一个小小的算法,交换两个数却不引入中间变量,想了下没什么思路.看了答案是这样: int a, b; a = a + b; b = a - b; a = a - b; 感觉还是挺有想法的,借此也 ...

  10. C和指针 第三章 变量的储存类型 auto、static、register以及static关键词

    变量的储存类型决定标量何时创建,何时销毁以及他的值保持多久.有三个地方可以储存变量: 普通内存static 运行时堆栈auto 硬件寄存器register 变量的缺省储存类型取决于它的声明位置: 静态 ...

随机推荐

  1. DNX 版本升级命令

    一.稳定版本 dnvm install latest -a x86 -r clrdnvm install latest -a x86 -r coreclrdnvm install latest -a ...

  2. [Asp.net]SignalR实现实时日志监控

    摘要 昨天吃饭的时候,突然想起来一个好玩的事,如果能有个页面可以实时的监控网站或者其他类型的程序的日志,其实也不错.当然,网上也有很多成熟的类似的监控系统.就想着如果通过.net该如何实现?所以就在想 ...

  3. Linux下查看文件和文件夹大小

     当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择. df可以查看一级文件夹大小.使用比例.档案系统及其挂入点,但对文件却无能为力.    du可以查看文件及文件夹的大小. ...

  4. Java学习注意事项

    一个Java文件中可以包含多个类. 如果有public类,则文件名必须和public类一样. 例如: class Pie { void f(){ System.out.println("Pi ...

  5. sql拼音简写函数

    USE [HotelDB]GO /****** Object: UserDefinedFunction [dbo].[fn_GetPy] Script Date: 2016/1/4 13:29:13 ...

  6. SqlServer代理执行[分发清除: distribution] 无法删除快照文件

    每天偶尔检查数据库作业是否失败,发现有错误 select top 10 job_id,run_date,run_time,run_duration,step_name,message from  ms ...

  7. Tomcat 部署详解

    前篇大概讲过了tomcat的发布和部署,以及测试. 本篇详细介绍下tomcat的部署相关的内容,本篇主要内容: 1 介绍下部署相关的内容,需要安装的文件以及上下文描述符 2 静态部署——在tomcat ...

  8. Ansible简明使用手册

            Ansible使用简明手册 1.简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric ...

  9. ASP 编码转换(乱码问题解决)

    ASP 编码转换(乱码问题解决) 输出前先调用Conversion函数进行编码转换,可以解决乱码问题. 注,“&参数&”为ASP的连接符,这里面很多是直接调用的数据库表字段,实际使用请 ...

  10. 几个Jquery对话框插件

    项目现状 While Thickbox had its day, it is not maintained any longer, so we recommend you use some alter ...