码迷,mamicode.com
首页 > 其他好文 > 详细

第二章 变量和基本类型(2)

时间:2015-03-31 14:30:04      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

2.1 基本内置类型(略过,没什么可写的,都是一些基本的东西)

2.2 字面值常量

  5.字符串字面值

    1.之前的字面值都是基本的内置类型

    2.字符串字面值,是用双引号括起来的0个和多个字符表示,""或者"hello word"

    3.为了兼容C语言,C++中所有的字符串字面值都有编译器g++自动在末尾添加一个空字符。

    4.字符字面值‘A‘,表示的是单个字符A

    5.字符串字面值"A",表示的是字母A和空字符,2个字符的字符串

2.3 变量

  关键概念:强静态类型

  1. C++是静态类型的语言,在编译时,会做类型检查,
  2. 那么perl是动态类型的语言??
  3. 动态类型的语言,没有编译的过程??
  4. 反正我在写完perl程序之后,是没有编译的过程,a.pl,直接调用perl的解释器,运行即可,perl a.pl
  5. 在C++中,变量的类型,决定了变量支持哪些操作,例如,int a,b;,a.b,显然,整型变量a和b不支持.这个操作,
    1. 那么,在什么时候检查,这种不合法的操作呢?
    2. 在编译阶段检查,g++ a.cc,如果出现上面的不合法的操作,编译器就会提示错误,不产生可执行文件
  6. 编译器,必须能识别代码中每个变量的类型,因此在C++中,使用变量之前,必须先进行定义
    1. int a,b;  float c,d;
    2. 编译器必须能识别上面代码中的每个变量的类型

  2.3.3 定义变量

  1. 初始化
    1. C++支持两种初始化变量的形式
      1. 复制初始化:使用等号=,int a = 1024;
      2. 直接初始化:把初始化值放在括号内,int a(1024);
    2. C++中初始化和赋值是两种不同的操作,(我在想,这样搞,是不是扣的太细了)
      1. 初始化是,创建变量,然后给变量赋初始值

      2. 赋值,是擦除对象当前的值,并用新值代替

    3. 使用=来进行变量的初始化,容易,让C++编程新手,感到迷惑,容易把初始化当成是赋值的一种形式

      1. 擦,这样来看,C++高手对初始化和赋值的区分还是很敏感的,就像豆花应该加糖还是加盐的区分有的一比。

    4. 既然有两种初始化方式,那么这两种方法必然有区别,现在只需要之后,直接初始化,语法更加灵活,而且效率更高一些。

  2. 使用多个初始化式

    1. 先搞清,作者写这一个小节的目的是什么呢?

      1. 首先,我对多个初始化式这个概念还是不了解

      2. 我目前的理解就是初始化string类的对象,有两种方法:

        1. 复制初始化: std::string str1 = "C++";

        2. 直接初始化:std::string str2("C++");

        3. 上面的两种方式都是创建了string 对象,然后初始值都是字符串字面值的副本
        4. 所谓的多个初始化式 std::string str3 = (10,‘9‘);使用一个计数器和一个字符初始化了string对象
          1. 初始化str3变量的唯一方法是直接初始化
          2. 有多个初始化式的时候,不能使用复制初始化。(duang、duang、duang、什么叫做多个初始化式还是不明白!)
  3. 初始化多个变量
    1. double salary = 9999, wage(salary + 1);         //每个变量都有自己的初始化方式,分别是复制初始化和直接初始化
    2. int a,b =8,c=7,d=1;                                      //初始化和未初始化混合在一起也是可以的
    3. std::string title("C++"),publisher = "A - W";   //直接初始化和复制初始化

  2.3.4 变量的初始化规则

  1. 内置类型变量的初始化
    1. 内置类型变量是否自动初始化,取决于变量定义的位置。
      1. 在函数体外定义的变量初始化成0
      2. 在函数体内定义的变量都不进行初始化。  

  2.3.5 声明和定义

  1. C++程序通常由多个文件组成,例如,一大堆头文件和一大堆源文件。
  2. 为了让多个源文件访问相同的变量,C++区分了声明和定义
  3. 变量的定义:
    1. 用于为变量分配存储空间,
    2. 还可以为变量指定初始值
    3. 在一个程序里,变量有且仅有一个定义
  4. 声明:
    1. 用于向程序表明变量的类型和名字
    2. 定义也是声明,没错啊,int a = 5,也是一个声明,向程序表明了变量a的类型是int,名字是a,而且还为变量分配了存储空间,指定了初始值
    3. 使用extern关键字声明变量,而不是定义变量
    4. extern int i;仅仅声明了变量i,没有为变量i分配存储空间
    5. 只是为了说明,啊,我这里有一个变量i,但是定义在程序的其他地方,我只是在这里告诉你们一下,哈哈
  5. 在一个程序中,变量可以声明多次,但是,只能定义一次。
  6. 在多个文件中使用的变量,例如,在头文件和源文件中都使用的变量a,需要有与定义分离的声明,一般一个文件含有变量的定义,使用该变量的其他文件,则包含该变量的声明(而不是定义)

 

第二章 变量和基本类型(2)

标签:

原文地址:http://www.cnblogs.com/yu-blog/p/4380527.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!