Linux服务器开发学习之C++

文章目录

    • 1 变量和基本类型
      • 1.1 类型转换
      • 1.2 变量声明和定义
      • 1.3 引用
      • 1.4 指针
      • 1.5 引用和指针的区别
    • 2 字符串、向量和数组

1 变量和基本类型

1.1 类型转换

当在程序的某处我们使用了一种类型而其实对象应该取另一种类型时,程序会自动进行类型转换。类型所表示的值的范围决定了转换的过程:

  • 当我们把一个非布尔类型的算术值赋给布尔类型时,初始值为0则结果为false,否则结果为true。
  • 当我们把一个布尔值赋给非布尔类型时,初始值为false则结果为0,初始值为true,则结果为1.
  • 当我们把一个浮点数赋给整数类型时,进行了近似处理。结果值将仅保留浮点数中小数点之前的部分。
  • 当我们把一个整数值赋给浮点类型时,小数部分记为0。如果该整数所占的空间超过了浮点类型的容量,精度可能有损失。
  • 当我们赋给无符号类型一个超出它表示范围的值时,结果是初始值对无符号类型表示数值总数取模后的的余数。例如,8bit大小的unsigned char 可以表示0-255区间的值,如果我们赋予一个区间以外的值,则实际的结果是该值对256取模后所得的余数。因此,把-1赋给8bit大小的unsigned char 所得的结果是255。
  • 当我们赋给带符号类型一个超出它表示范围的值时,结果是未定义的(undefine)。
  • 当有符号数和无符号数进行运算时,会将有符号数转化为无符号数。

1.2 变量声明和定义

  • 声明使得名字为程序所知,一个文件如果想使用别处定义的名字,则必须包含对那个名字的声明。变量声明规定了变量的类型和名字。如果想声明一个变量,就在变量名前添加关键字extern,且不要显式地初始化变量。我们能给由extern关键字标记的变量赋一个初始值,但是这么做也就抵消了extern的作用。extern语句如果包含初始化就不再是声明,而变成定义了。
  • 定义负责创建与名字关联的实体。任何包含显式初始化的声明即成为定义。
extern int i;//声明i
int j;//声明并定义j
extern double pi=3.1416;//定义

1.3 引用

引用为对象起了另外一个名字,引用是一种声明关系,且在声明引用时必须初始化。可以定义一个对象的多个引用。

1.4 指针

指针全称为指针变量,她也是一种数据类型,当创建指针变量时,编译器会为指针分配内存空间,在32位系统上,指针通常为4个字节。

1.5 引用和指针的区别

  • 引用是一种关系声明;指针是变量定义。
  • 引用必须初始化;指针可以在定义时不初始化,那么它将拥有一个不确定的值。
  • 引用一经声明将不再变更;可以改变指针的指向。

2 字符串、向量和数组

你可能感兴趣的:(Linux服务器开发学习之C++)