2013年6月25日
摘要: sizeof 操作符的作用是返回一个对象或类型名的长度,返回值的类型是size_t。size_t是标准库中的类型,定义在cstddef头文件中,该文件是C标准库的头文件stddef.h的C++版本,它是一个与机器相关的unsigned类型,其大小足以保证存储内存中的对象的大小。(1)sizeof 操作符的用法sizeof的结果是编译时常量,它的使用有三种形式:a. sizeof (type name)b. sizeof (expr)c. sizeof exprb,c中返回的结果都不是expr的值,而是expr的结果的类型的长度,因此,对于sizeof *p,即使p指向一个无效地址,结果也是合法 阅读全文
posted @ 2013-06-25 21:43 Sophia-呵呵小猪 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 这一章的内容主要来自C++ Primer中文版第四版的第5章。(1)自增和自减操作符自增和自减操作符有前置和后置两种形式,前置操作使用的是对象加1后的值,后置操作使用的则是对象加1前的值,推荐使用前置操作符,原因如下:前置操作返回的是加1后的值,所以返回的是对象的本身,是左值;而后置操作符需要将对象加1,但是还需要保存加1前的值,对于int类型和指针,编译器可优化掉这些额外开销,但是对于复杂的迭代器类型,可能就需要花费很大的代价,如果使用前置操作符,就可以忽略掉这些性能差异。(2)箭头操作符是为了简化解引用和点操作符点操作符用来获取类类型对象的成员,如果要通过指向对象的指针获取对象的成员,那么 阅读全文
posted @ 2013-06-25 16:50 Sophia-呵呵小猪 阅读(274) 评论(0) 推荐(0) 编辑
摘要: C++中的多维数组其实就是数组的数组,二维数组指的就是数组的元素也是数组。(1)初始化二维数组的初始化方式有如下几种:1 int ia[3][4] = {{0,1,2,3}, {4,5,6,7}, {8,9,10,11}};2 int ia1[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};3 int ia2[3][4] = {{1},{3},{6}};//只初始化了每一行的第一个元素4 int ia3[3][4] = {0, 3, 6, 9}//只初始化了第一行的元素对于第3行所显示的初始化方式,剩下的元素的初始化规则同一维数组的初始化方式,即内置类型的初始化为0,类 阅读全文
posted @ 2013-06-25 15:06 Sophia-呵呵小猪 阅读(353) 评论(0) 推荐(0) 编辑
摘要: C++语言提供了两种类似于vector和迭代器类型的低级复合类型——数组和指针(此话出自C++Primer 中文版第四版P109,总觉这话让人看着不舒服……),设计良好的程序只有在强调速度时才在类实现的内部使用数组和指针。数组元素可以是引用外的任何内置类型或者类类型。(1)数组的初始化在没有显示初始化的情况下,数组元素的初始化类似于普通变量:a. 在函数体外(全局)的定义的内置数组,其元素均初始化为0;b. 在函数体内定义的内置数组,其元素无初始化;c. 如果为类类型,不管在哪里定义,都自动调用该类的默认构造函数进行初始化;如果该类没有默认构造函数,则必须为该数组的元素提供显示初始化。显示初始 阅读全文
posted @ 2013-06-25 13:54 Sophia-呵呵小猪 阅读(230) 评论(0) 推荐(0) 编辑