当前位置:首页 > 资讯 > info6 > 正文

C++ primer 学习笔记(到第四章)

发表于: 2008-07-04   作者:ccd1230102   来源:转载   浏览:
摘要: 先开个头,哦哈哈!1、计算机内部实现过程有别,详细如下:i=i+1的过程相当:temp=i+1;i=temp;i++的过程相当:temp=i;i=temp+1;return temp;++i的过程最简单:i增1然后return i 的值,一步完成,没有给任何temp变量赋值I++必须完成整个表达式后才进行++;2、for循环先初始化,然后测试条件,如果满足则进行循环。For内的初始化不能在循环外部

先开个头,哦哈哈!

1、计算机内部实现过程有别,详细如下:

i=i+1的过程相当:

  temp=i+1; i=temp;

i++的过程相当:

  temp=i; i=temp+1; return temp;

++i的过程最简单:

i增1然后return i 的值,一步完成,没有给任何temp变量赋值

I++必须完成整个表达式后才进行++;

2、for循环

先初始化,然后测试条件,如果满足则进行循环。

For内的初始化不能在循环外部访问。

3、编译器能查出的普通错误:1.语法错误2.类型错误3.声明错误

4、Unsigned =unsigned int

5、C++中,负数赋给unsigned是完全合法的,结果为取摸

6、Float能保证6位有效数字,而double能保证10位有效数字

7、20 十进制

020 八进制

0x20 十六进制

double a=10e0f;

8、换行符 /n 水平制表符 /t

纵向制表符 /v    退格符    /b

回车符     /r     进纸符   /f

报警(响铃)符 /a   反斜线  //

疑问号    /?      单引号    /'

双引号    /"

通用转义字符 /000   /0xddd

9、反斜杠/可以断开c++语句,但是/后必须无字符,下一行必须无空格

10、初始化不是赋值:赋值要擦除原来的数据,初始化有:复制初始化= 直接初始化();

直接初始化语法更灵活,效率更高;

11、std::string 初始化 a="lfieng"; a("lfieng"); a(10,'l');

12、初始化:函数体外的内置变量初始化为0;函数体内不自动初始化;

13、Extern只是声明变量,声明有初始化也可以当作定义 ,所以extern int i=0 也是定义

14、全局变量可在局部作用域和语句作用域使用,但是局部变量可覆盖同名全局变量。

15、普通变量全局定义和声明 ;非const默认为extern,常量必须赋值.

1.cpp

Int a;

2.Cpp

Extern int a;

++a;

常量全局定义和声明

1.Cpp

Extern const  int a=10;

2.Cpp  :extern const int a; a++;

16、&为引用,即复合类型,只是一个别名,对引用的操作就是对绑定对象的操作。

Const引用绑定const对象

17、typedef用于:

为了隐藏特定类型的实现,强调实用类型的目的

简化复杂的类型定义,使其更容易理解

允许一种类型用于多个目的,同时是得每次使用该类型的目的明确。

18、枚举enum初始化enum a {a=1,b,b};

19、用class来定义类,则在第一个访问标号前的成员都是private,

用struct来定义类,则成员都是public

Struct 值类型  Class引用类型 

Struct 无析沟函数 Class有 

Struct 构造函数必须要有参数  Class 可以无 

Struct 不能继承Struct和Class Class 可以继承Class 

小结构用struct,大结构用class

struct一般分配在栈区,赋值的时候是拷贝内存

class一般分配在堆区,赋值的时候是复制指针

20、头文件是用于声明的而不是定义,例外:可定义类,值得编译是就已知道的const对象和inline函数。Const变量使用常量表达式初始化的可以放在头文件中,如果不是,则要放在源文件中,并在头文件中添加extern声明。

21、被多次包含的头文件要加头文件保护符,

22、字符串字面值与string是不同的类型;string从不是空格开是读取,到空格是停止读取

23、String a;a.size()返回的是string::size_type;  string的+左右操作数中必须有一个string

24、String的字符函数 string 无参初始化为空格;

头文件 cctype;

Isalnum(C) 字母或数字 true

Isalpha(C) 字母 true

Iscntrl(C)  控制字符 true

Isdigit(C)  数字 true

Isgraph(C) 不是空格,但可打印 true

Islower(C) 小写字母 true

Isprint(C) 可打印字符 true

Ispunct(C) 标点符号 true

Isspace(C) 空白字符 true

Isupper(C) 大写字母 true

Isxdigit(C) 十六进制数 true

Tolower(C) 如C是大写 返回小写 否则返回C

Toupper(C)如C是小写 返回大写 否则返回C

25、vector只是一个类模板,只有vector<int>或vector<string>才是数据类型
自动初始化,int为0,string为该类型的初始化

函数:v.empty()

V.size()

V.push_back(t)

V[n]

=,==,<,!=,<=,>,>=

26、c++习惯与用!=来判断条件

27、Const_iterator 引用的是const值

const vector<intv2(10,9);

//const vector<int>::iterator iter2=v2.begin();  这是错误的

vector<int>::const_iterator iter3=v2.begin();

28、bitset赋值:

1.bitset<16> b(0xffff);

2.String a("0010");bitset<16> c(a);

3.Bitset<16> a(s,5,4);bitset<16> a(s,s.size()-4);

Bitset含有多个测试函数

29、char 赋值

Char a[4]={'a','b','c','/0'};

Char b[4]="abc";

30、数组的下标类型 size_t,它是unsigned;

31、Void *指针,可以保存任何类型的指针。

32、数组中,数组名自动指向数组的第一个元素

33、指针相减的值类型为ptrdiff_t,它是signed;

34、指针操作数组:

Const size_t arr_sz=5;

Int int_arr[arr_sz]={0,1,2,3,4};

For(int *pbegin=int_arr,*pend=int_arr+arr_sz;

Pbegin!=pend;++pdegin;

Cout<<*pbegin<<'  ';

C++ primer 学习笔记(到第四章)

编辑推荐
加油!2014-2-8 1、使用cout输出一个字符串,或者用strlen获取一个字符串的长度,都是找到该地址开
《C++ primer》第五版 第8-14章笔记 1. 宏替代 #include <iostream> using namespace std; #d
欢迎大家阅读参考,如有错误或疑问请留言纠正,谢谢 一、程序 1、程序 (1)编写程序是为了让计算机
类:简单来说就是数据和它的操作的一种封装,内部提供接口函数 1.“ 定义 ”在类内部的函数是隐式in
第 12 章 动态内存 概述. 动态内存和智能指针 在c++中,动态内存的管理是通过一对运算符来完成的:
1、指针约束 2、指针和引用比较 3、c风格字符串 #include <cstring> Cstring是string.h头文件
表达式 1、箭头操作符、点操作符 如果一个指向Sales_item对象的指针(或迭代器),则在使用点操作符
目录 1. 后缀名... 1 2. include 预处理指示符... 1 3. 条件指示符 #ifndef #indef. 2 4. 编译器自
类:简单来说就是数据和它的操作的一种封装,内部提供接口函数 1.“ 定义 ”在类内部的函数是隐式in
class Sales_item { public: Sales_item(void); ~Sales_item(void); private: string isbn; unsigne
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号