c++ primer

1. p16  

C++ 旧风格   头文件 以.h结尾     新式风格   没有扩展名   需要使用 namespace std

 访问 名称空间std 四种方法:

              using namespace std 放在函数定义之前

              放在特定函数中

              使用 using std::cout    使用制定元素如 cout

              不使用using指令   使用前缀std::

2. p19

控制符 endl  重启一行

换行符  \n

用引号括起的字符串时,通常用\n,其他用endl

 

3.p39

位与字节  

计算机内存基本单位 位(bit)

字节  8bit

c++工具检查类型长度   运算符sizeof 和头文件 limits

#include <climits>     or    <limits.h>

INT_MAX  SHRT_MAX LONG_MAX LLONG_MAX      p41

sizeof(int)

 

64位win7 系统

int 4bytes  short 2bytes  long 4  longlong 8 

4.p43

无符号类型 即short 表示 -32768 到 32767   无符号 为 0 到 65535

用关键字  unsigned

如果超出了限制,其值将为范围另一端的取值

5. p54

const 限定符 来修改变量声明和初始化

一种常见的做法就是将名称的首字母大写    const int Months = 12;

或者 将整个名称大写  MONTHS 

或者 是以字母k打头  kmonths

疑问:const 和  define  区别

6. p59

cout.setf(ios_base::fixed,ios_base::floatfield)

ios_base::fixed是设置cout为定点输出格式
ios_base::floatfield是设置输出时按浮点格式,小数点后有6位数字

 

7.p60

除法  如果其中只有一个或者两个操作数是浮点值,则小数部分将保留,结果为浮点数。

8.p 64

当运算涉及两种类型时,较小的类型将被转换为较大的类型,

否则,说明操作数都是整数,因此执行整形提升

9.p65

强制转换  

(long)thorn    c

  long(thorn)  c++

强制转换类型不会修改thorn变量本身,而是创建了一个新的、指定类型的值,可以在表达式中使用这个值。

10.p65

static_cast<>可用于将值从一种数值类型转换为另一种数值类型

static_cast<long>(thorn)

11.p66

auto   编辑器将把变量的类型设置成与初始值相同

auto n = 100;//n is int

auto 处理复杂类型  自动类型推断的有时才能显示出来,,

疑问  auto 

12.p73

数组初始化规则

只有在定义数组才能使用初始化,此后就不能使用了,也不能将一个数组赋给另一个数组

int cards[4] = {2,6,8,10};// ok

int hand[4];//ok

hand[4]  = {3,3,2,5};//not 

hand =cards  //not

然而,可以使用下标分别给数组中的元素赋值。

可以提供的值少于数组的元素数目,其他元素为0

如果提供的方括号内为空, C++编译器将计算元素的个数  (但是让编译器去做  是件很糟糕的事情)

建议:  short things[] = {1,5,2,5};

    int num_elements = sizeof things / sizeof(short);

{}  中禁止缩窄转换   (浮点转整型 ,超出范围)

13.p74

疑问:书上说  初始化数组  为嘛必须要用static ???

老的编译器不支持(auto变量)数组声明时初始化, 所以必须加上static
现在的编译器都支持 int a[5]={1,2,3}; 自动变量初始化,所以不必非加上static
至于一定要问有什么作用,估计就是为了兼容以前的老编译器,还有,就是你看得书实在是太老了,作者当时只能这么写,因为编译器不支持没static的数组初始化.


14.p78

cin.getline() 参数1:存储输入行的数组名称 参数2:要读取的字符数

get()接受的参数相同,但是get()并不再读取并丢弃换行符  而是将其在输入队列中。  get(name,20).get();

查看下一个输入字符,如果是换行符,说明已经读取了整行,否则说明该行还有其他输入。

疑问  :17章

 

15.p83

string类简化了字符串合并操作,可以使用运算符+将两个string对象合并起来,还可以使用运算符+=将字符串加到string对象的末尾。

string str3;

str3 = str1+str2;

str1 +=str2;

 

 

posted @ 2012-11-22 16:55  不想当元帅的好兵。  阅读(190)  评论(0编辑  收藏  举报