c++ primer---读书笔记2

来源:互联网 发布:cok服务端账号数据在哪 编辑:程序博客网 时间:2024/05/20 09:24

语言的学习:

语言一般有以下特征:

    内置数据类型

    表达式和语句

    变量

    控制结构

    函数

 

c++ 静态类型语言,需要事先定义名字类型。

动态语言,如python?

 

掌握c++第一步:

    语言基本知识和标准库。

 

字节:寻址的最小单位

字  :读写内存的最小单位

 

c++中unsigned 类型可以接受负值,相当于求模的值。(不建议)

 

float  32位

double 64位

long double 96位、128位

 

float只能保证6位有效数字,double可以至少保证10位有效数字。

 

20   // decimal

024  // octal

0x14 // hexadecimal

 

128u   // unsigned

1024UL // unsigned long

1L     // long

8Lu    // unsigned long

 

3.14F   3.14E0f

bool test = false

 

L'a'   //wchar_t       L"abcd"  //wchar_t 字符串

 

/与下行做同一行处理:(注意/后面不能有注释或者空格)

std::cou/

t << "Hi" <<std::endl;

 

什么是变量?有名字的存储区域

对象是内存中具有类型的区域。

 

变量名_或者字母开头。__开头或者_大写字母被保留为系统用。

 

初始化不等于赋值。

复制初始化和直接初始化是有所不同的。Target a=b; or Target a()

 

函数外定义的内置变量都自动初始化为0;函数内定义的内置变量不自动进行初始化。

使用未初始化的变量,属未定义行为,会产生难以预测的问题。

 

复杂类型如果有默认构造函数,则会调用默认构造函数进行初始化。

 

变量定义:用于为变量分配存储空间。

变量声明:用于向程序表明变量的类型和名字。

 

定义也是声明;也可以用extern关键字声明变量而不定义它。

变量可以声明多次,但是只能定义一次。

 

extern double pi = 3.14;  //define是定义。

只有extern声明在函数外部时,才可以含有初始化式。

 

作用域:

全局作用域

局部作用域

语句作用域 如for(int i = 0; i<100;i++);

 

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

const对象默认为该文件的局部变量。

 

引用就是对象的另一个名字。主要用于函数形式参数。

记住: 引用只是对象的另一个名字。

 

非const引用只能绑定到该引用的同类对象。

const引用可以绑定到不同但相关的类型的对象或者绑定到右值。

 

struct和class定义类的唯一区别:struct默认级别为public

                               class默认级别为private

 

头文件一般包含:类定义,extern变量声明和函数声明

好处:保证所有文件使用给定实体的同一声明;

      当声明需要修改时近更新头文件即可。

注意:因为头文件会包含在多个源文件中,所以不要有变量或函数的定义。

三个例外:头文件中可以定义类,值在编译时已经知道的const对象和inline函数。

 

 

 

原创粉丝点击