C++ Primer 学习札记(二)

第一部分 基本语言包括从第二章到第八章。第一章只是快速入门,进入第二章了~瓦咔咔~~

变量和基本类型

类型是所有程序的基础。它告诉我们数据代表什么意思以及可以对数据执行哪些操作。C++语言定义了几种基本类型:字符型、整型、浮点型等。C++还提供了可用于自定义数据类型的机制,标准库正是利用这些机制定义了许多更复杂的类型,比如可变长字符串stringvector等。

 

脚印:

1.算术类型:

    

    

最小存储空间

bool

布尔型

NA

char

字符型

8

wchar_t

宽字符型

16

short

短整型

16

int

整型

16

long

长整型

32

float

单精度浮点型

6位有效数

double

双精度浮点型

10位有效数

long double

扩展精度浮点型

10位有效数

让存储具有结构的最基本方法是用块(chunk)处理存储,通常将8位的块作为一个字节,32位或4个字节作为一个字(word

2.字面值常量:课通过在数值后面加Ll(字母“l”大写或小写)指定常量为long类型。推荐使用“L”

类似地,可通过在数值后面加Uu定义unsigned类型。同时加LU就能够得到unsigned long类型的字面值常量。但其后缀不能有空格:

128u       /* unsigned   */     1024UL    /* unsigned long   */

1L    /* long   */     8Lu  /* unsigned long   */

3.没有short类型的字面值常量!

4.各种转义字符同C语言。'/0'通常表示空字符(null character。为了兼容C语言,C++中所有的字符串字面值都由编译器自动在末尾添加一个空字符。

5.不要依赖未定义的操作:使用了未定义操作的程序都是错误的,如果程序能够运行,也只是巧合。未定义的操作源于编译器不能检测到的程序错误或太麻烦以至无法检测的错误。

6.多行字面值:在一行的末尾加一反斜线符号可将此行和下一行当作同一行处理。注意反斜线符号必需是该行的尾字符——不允许有注释或空格符。

7.(New) C++程序员常常把变量称为“变量”或“对象(object)”。

8.(New)左值右值

(1) 左值lvalue,发音为ell-value):左值可以出现在赋值语句的左边或右边。

   (2) 右值rvalue,发音为are-value):右值只能出现在赋值的右边,不能出现在赋值语句的左边。

   (3)变量是左值,因此可以出现在赋值语句的左边。数字字面值是右值,因此不能被赋值。

9.初始化:C++支持两种初始化变量的形式:复制初始化(copy- initialization)和直接初始化(direct-initialization)。复制初始化语法用等号(=),直接初始化是把初始化式放在括号中:

int ival(1024);     // direct-initialization

int ival = 1024;    // copy-initialization

这两种情形中,ival都被初始化为1024

10.初始化不是赋值!!!

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

12.使用未初始化的变量是常见的程序错误,通常也是难于发现的错误~~~

13.可以通过使用extern关键字声明变量名而不定义它。C++语言中,变量必须且仅能定义一次,而且在使用变量之前必须定义或声明该变量。

14.作用域:

#include <iostream>

int main()

{

int sum = 0;

// sum values from 1 up to 10 inclusive

for (int val = 1; val <= 10; ++val)

sum += val;   // equivalent to sum = sum + val

 

std::cout << "Sum of 1 to 10 inclusive is "

      << sum << std::endl;

return 0;

}

(New) 定义在所有函数外部的名字具有全局作用域(global scope),可以在程序中的任何地方访问。名字sum定义在main函数的作用域中,在整个main函数中都可以访问,但在main函数外则不能。变量sum有局部作用域(local scope)。名字val更有意思,它定义在for句的作用域中,只能在for语句中使用,而不能用在main函数的其他地方。它具有语句作用域(statement scope)。

15.C++中作用域可嵌套

16. 魔数(magic number

17.const限定符可以把一个对象转换成一个常量。因为常量在定义后就不能被修改,所以定义时必须初始化。

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

19.引用是一种复合类型,通过在变量名前添加“&”符号来定义。定义如下:type &id = object ;

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

21.初始化是指明引用指向哪个对象的唯一方法。const引用是指向const的引用。非const引用只能绑定到与该引用同类型的对象。const引用则可以绑定到不同但相关的类型的对象或绑定到右值。

 

 

 

这章内容不少,先到此搁笔,择日再续~~~

——??XāΩādц??

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值