您的位置:首页 > 编程语言 > C语言/C++

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

2008-07-04 22:33 225 查看
先开个头,哦哈哈!

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

=,==,<,!=,<=,>,>=
26、c++习惯与用!=来判断条件
27、Const_iterator 引用的是const值
const vector<int> v2(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<<' ';
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: