Notes On C++ (一)

Notes on C++ Primer

(一)

文字常量

1. 整数文字常量可以被写成十进制八进制或者十六进制的形式这不会改变该整数值的

位序列。

2. 在整型文字常量前面加一个0 该值将被解释成一个八进制数而在前面加一个0x 0X

则会使一个整型文字常量被解释成十六进制数。

3.整型文字常量默认为有有符号的int类型,可以在常量后添加“L/l”将常量指定为long类型,添加“U/u”来将常量指定为无符号类型。例如1024L222U

4.浮点类型的文字常量可表示为普通十进制或者科学计数法,例如:25.32.7E2。在普通十进制表示时,可以在常量后追加“F/f”将常量指定为单精度,“L/l”扩展精度。

5.一部分不可打印的字符单引号双引号以及反斜杠可以用如下的转义序列来表示,转义符的基本格式为:\xxxxxx为三位的八进制数)。下表为各转义符的意义。

newline(换行符) \n

horizontal tab(水平制表键) \t

vertical tab(垂直制表键) \v

backspace(退格键) \b

carriage return (回车键) \r

formfeed (进纸键) \f

alert (beel) (响铃符) \a

backslash (反斜杠键) \\

question mark (问号) \?

single quote (单引号) \'

double quote (双引号) \"

6.字符型常量默认为char类型,可以通在常量前面加上“L”将常量指定为w_char宽字符类型。同样也可以将char类型的字符串指定为宽字符串。

注意:C++会自动将程序中的相邻两个普通字符串或宽字符串连接成一个,而当普通字符串与宽字符串相邻时,则会出错!

 

变量

1.       变量命名习惯。

通常变量名用小心字母,如index。而Index则通常作为类名,INDEX则通常被定义为常量(用#DEFINE)定义。在包含有多个单词的变量命中,习惯上在每个词间加下划线“_”或者每个词首字母大写。

2. L-Value & R-Value

L-Value可解释为“Left Value”或者“Location Value,用于储存内存地址。而R-Value可解释为“Right-Value”或者“Read Value”,用于储存用户数据。

 

指针

1.       指针定义时的“*”与解引用符“*”是两个不同的概念。定义时的*代表之后的变量是某类型的指针,而解引用符与变量名共同组成一个等同于改类型变量的符号。更确切的说,在定义时,*是与类型名组合,而解引用时,*是与变量名组合。

字符串

1.       c风格的字符串,以字符数组的方式声明,操作与普通数组基本相同,唯一的不同是字符数组支持整体输出,以及包含在 “cstring.h” 中的一些函数。

2.       c++字符串类型,是标准库中的一个类。与c风格的字符串相比,后者的最大好处是避免了前者对字符的底层操作而引起的错误,增加了程序的稳定性与速度。

注意:二者均属于c++标准库中的部分。

CONST修饰符

1.       将一个常量定义为变量:Const <类型名> <变量名>

2.       指向常量变量的指针:const <类型名> * <变量名>。指针本身的值是可以赋值或者修改的,而指针所指向的对象的值不可修改。

3.       常量指针:<类型名> * const <变量名>。指针指向的内容可以被修改,但指针本身不可以被赋值其他地址。

小结:const修饰符总是将限定作用加在最靠近他的那个关键字上,类似于英语语法中的就近原则。

枚举类型

1.       枚举类型定义了一个自定义属性的集合:enum <集合名> {元素1,元素2,……}

2.       枚举类型的元素可以在定义时被赋予整形值,可以比较大小及其他运算,但是只可以利用同类型的变量对已有变量赋值。

数组

数组与指针的关系:数组名是以个指向数组元素类型的指针,因此,理论上可以用指针完全操作数组。

数组的代替:vector

C++标准库提供了更易于使用的数组替代品Vector(当然,某些特殊的情况依然需要内置数组),使用Vector需要包含头文件“vector”。

与内置数组相比,标准vector类提供了很多便利的函数,比如empty(),size(),begin(),end()等。

Typedef

Typedef定义了一个类型的别名,而不是一个新类。换句话说,tyepdef定义的名称与已有的完整的类名有完全相同的功能。Typedef并不支持在类基础上的任何自定义操作。

Volatile

当一个对象的值可能会在编译器的控制或监测之外被改变时,例如一个被系统时钟更新

的变量,那么该对象应该声明成volatile 因此编译器执行的某些例行优化行为不能应用在

已指定为volatile 的对象上。

注意:volatileconst一样,都是类型的附加修饰符。

Pair类型

pair类型也是C++标准库的一部分,包含在头文件“utility”中。定义方式如下:

pair <type1,type2>

它使得变量能够将两个不同的类型联合起来。

posted on 2007-09-02 15:01 HienChu 阅读(432) 评论(0)  编辑 收藏 引用 所属分类: C++


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2010年10月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

文章分类

搜索

最新评论

阅读排行榜

评论排行榜