摘要: 位操作符 位操作符使用整型的操作数,位操作符将其整型操作数视为二进制位的集合,为每一位提供检验和设置的功能。 ~ 位求反 << >> 左移 右移 & 位与 ^ 位异或 | 位或 位操作符操纵的整数的类型可以是有符号的也可以是无符号的,如果操作数为负数,则位操作符如何处理其操作数的符号位依赖于机器。于是它们的应用可能不同 在一个应用环境中实现的程序可能无法用于别一个应用环境 因此:对于位操作符,由于系统不能确保如何处理其操作数的符号位,所以强烈建议使用unsigned整形操作数。 sizeof操作符 sizeof操作符的作用是返回一个对象或类型名的长度,返回值的类 阅读全文
posted @ 2013-05-07 23:47 爱喝咖啡的猫 阅读(182) 评论(0) 推荐(0)
摘要: 数组类型的变量有三个重要限制: 数组长度固定不变 在编译时必须知道其长度 数组只在定义它的块语句内存在 每一个程序在执行时都占用一块可用的内存空间,用于存放动态分配的对象,此内存空间称为程序的自由存储区或堆,C语言程序使用一对标准库函数malloc和free在自由存储区中分配存储空间,而C++语言则使用new和delete表达式实现相同的功能。 动态数组的定义 数组变量通过指定类型、数组名和维数来定义。而动态分配数组时,只需指定类型和数组长度,不必为数组对象命名,new表达式返回指向新分配数组的第一个元素指针 int *pia = new int[10]; 此new表达式分配... 阅读全文
posted @ 2013-04-27 22:54 爱喝咖啡的猫 阅读(436) 评论(0) 推荐(0)
摘要: 指针操作 指针提供间接操纵其所指对象的功能。与对迭代器进行解引操作一样,对指针进行解引可访问它所指的对象,*操作符(解引用操作符)将获取指针所指的对象: string s("jenner"); string *sp = &s; cout << *sp;使用指针访问数组元素 两个指针减法操作的结果是标准为类型ptrdiff_t的数据。与size_t类型一样,ptrdiff_t也是一种与机器相关的类型,在cstddef头文件中定义。size_t是unsigned类型,而ptrdiff_t则是signed整型 这两种类型的差别体现了它们各自的用途:size_t 阅读全文
posted @ 2013-04-23 23:57 爱喝咖啡的猫 阅读(219) 评论(0) 推荐(0)
摘要: 指针的引入 vector的遍历可以使用下标或迭代器实现,同理,也可以用下标或指针(pointer)来遍历数组。什么是指针 指针用于指向对旬,与迭代器一样,指针提供对其所指对象的间接访问,只是指针结构更通用一些。与迭代器不同的是,指针用于指向单个对象,而迭代器只能用于访问容器内的元素。具体来说,指针保存的是另一个对象的地址: string s("jenner"); string *sp = &s; // sp保存s(也就是字符串'jenner')的内存地址, &符号是取地址操作符,当此操作符用于一个对象上时,返回的是该对象的存储地址。取地址操作 阅读全文
posted @ 2013-04-23 08:38 爱喝咖啡的猫 阅读(170) 评论(0) 推荐(0)
摘要: 数组的定义和初始化: 数组的维数必须用值大于等于1的常量表达事定义。此常量表达式只能包含整型字面值常、枚举常量或者用常量表达式初始的整形const对象。 非const变量以及要到运行阶段才知道其值的const变量都不能用于定义数组的维数。 显示初始化数组 在定义数组时,可为其元素提供一组用逗号分隔的初值,这些初值用花括号{}括起来,称为初始化列表: const unsigned arrLen = 5 int intArr[arrLen] = {0, 1, 2, 3, 5}; 如果没有显示提供元素初值,则数组元素会像普通变量一样初始化 在函数... 阅读全文
posted @ 2013-04-18 00:29 爱喝咖啡的猫 阅读(469) 评论(0) 推荐(0)