随笔分类 - C 和 C++
摘要:1. a)5。 b)存在风险,因为 c=c++%5; 这个表达式对 c 有两次修改,行为未定义,c 的值不确定。 2. a)a=2,b=100,c=2,d=6,e=5 b)stack:d;data:a;bss:b,c,e BSS段: BSS段(bss segment)通常是指用来存放程序中未初始化的
阅读全文
摘要:1. int main(int argc,char *argv[]) { int c=9,d=0; c=c++%5; d=c; printf("d=%d\n",d); return 0; } a) 写出程序输出 b) 在一个可移植的系统中这种表达式是否存在风险?为什么? 2. int a=0; in
阅读全文
摘要:7. 异常处理 会抛出异常的函数(函数中有 throw )才能用 try,catch 捕捉异常。 catch (…) 可以捕捉任何类型的异常。 8. 命名空间 namespace命名空间名称 { 成员;…… } using namespace命名空间名称;
阅读全文
摘要:6. 输入输出流 6. 1 标准输出流 6. 1. 1 标准输出流 cout,cerr和clog流: 1) endl 插入换行符,清空缓冲区; ’\n’ 只插入换行符。 2) cerr 不经过缓冲区直接输出到显示器, clog 先存放在缓冲区。 3) cout 可被重定向输出到磁盘文件。 6. 1.
阅读全文
摘要:5. 类 5. 1 访问控制 public;在类的外部可见,并可被调用和操作。 private:只能被该类的成员函数访问。 protected:只能被该类的函数和派生类的函数访问。 ※ 这三个关键字后面都可以跟一大串声明。 friend:不属于类的成员函数,但可以像类的成员一样访问类的 privat
阅读全文
摘要:4. 初识OOP 1) OOP:面向对象编程的特点是继承和动态绑定。C++ 通过类的派生支持继承,通过虚拟函数支持动态绑定。虚拟函数提供了一种封装类体系实现细节的方法。 2) 四个主要特点:抽象、继承、封装和多态性。 3) 抽象:抽取事物的本质。 ① 隐藏不相关细节,集中关注本质特征。 ② 隐藏内部
阅读全文
摘要:3. 函数 1) 函数声明中可以不写形参名而只写形参类型,这种函数声明成为函数原型。 函数声明的位置可以在调用函数所在的函数中,也可以在函数之外。 2) 内置函数:编译时将所调用函数的代码直接嵌入到主调函数中,这种嵌入到主调函数中的函数称为内置函数(inline function)。 3) 函数的重
阅读全文
摘要:2. 运算符 C++ 提供一种特殊的运算符——逗号运算符,用来将两个表达式连接起来,又称顺序求值运算符。 一般形式为:表达式1,表达式2 例如 a = 3*5, a*4 整个表达式的值为 60(赋值运算符优先级高于逗号运算符)。 逗号表达式的一般形式可以扩展为:表达式1,表达式2,表达式3,…,表达
阅读全文
摘要:1. 数据类型 数据类型可分为:基本类型,构造类型,指针类型,引用类型,空类型。 1) 基本类型:整型(short int,int,long int),浮点型(float,double,long double),字符型(char),布尔型(bool) 2) 构造类型:枚举类型(enum),数组类型,
阅读全文
摘要:11.函数 11.1 函数的参数和函数的值 11.1.1 形式参数和实际参数 函数的形参和实参具有以下特点: 1) 形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。 2) 实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定
阅读全文
摘要:10.数组 10.1 一维数组 10.1.1 一维数组的定义 一维数组的定义方式为:类型说明符 数组名 [常量表达式]; 对于数组类型说明应注意以下几点: 1) 数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。 2) 不能在方括号中用变量来表示元素的个数, 但
阅读全文
摘要:9.文件操作 9.1 文件指针 定义说明文件指针的一般形式为: FILE *指针变量标识符; 9.2 文件的打开和关闭 9.2.1 文件的打开(fopen) fopen 函数用来打开一个文件,其调用的一般形式为: 文件指针名=fopen(文件名,使用文件方式); 文件使用方式 意义 “rt” 只读打
阅读全文
摘要:8.位运算 8.1 C 语言提供了 6 种位运算符 & 按位与 | 按位或 ^ 按位异或 ~ 取反 << 左移 >> 右移 位运算需要说明的问题: 1) 位与、位或、位异或,参与运算的数以补码形式出现 2) 左移运算符 “<<” 是双目运算符。其功能把 “<< ” 左边的运算数的各二进位全部左移若干
阅读全文
摘要:7.结构体(struct)、共用体(union)、枚举类型(enum) 7.1 结构体 定义一个结构的一般形式为: struct 结构名 {成员表列} 结构体所占内存长度是个成员占的长度之和。 7.2 共用体 几个不同的变量共占一段内存的结构,称为共用体(union)。 定义一个公用体的一般形式为:
阅读全文
摘要:6.预处理命令 6.1 宏定义 在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。 6.1.1 无参宏定义 对于无参宏定义要说明以下几点: 1) 宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名,这只是一种简单的代换,字符串中可以含任
阅读全文
摘要:5.指针 5.1 指针和指针变量 变量的指针就是变量的地址。存放变量地址的变量是指针变量。 5.2 指针运算符 两个有关的运算符: 1) &:取地址运算符。单目运算符,其结合性为自右至左,其功能是取变量的地址。 2) *:指针运算符(或称“间接访问” 运算符)。单目运算符,其结合性为自右至左,用来表
阅读全文
摘要:4. 函数与变量 4.1 函数 函数声明: C 语言中又规定在以下几种情况时可以省去主调函数中对被调函数的函数说明。 1) 如果被调函数的返回值是整型或字符型时,可以不对被调函数作说明,而直接调用。这时系统将自动对被调函数返回值按整型处理。 2) 当被调函数的函数定义出现在主调函数之前时,在主调函数
阅读全文
摘要:3. 输入输出与程序结构 3.1 字符输入输出 putchar(),getchar() 3.2 格式化输入输出 3.2.1 printf() 函数 printf 函数调用的一般形式为:printf(“格式控制字符串”,输出表列)。 格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以%开头
阅读全文
摘要:2. 运算符 2.1 运算符 1) 算术运算符:用于各类数值运算。包括加 (+) 、减 (-) 、乘 (*) 、除 (/) 、求余(或称模运算,% )、自增 (++) 、自减 (--) 共七种。 2) 关系运算符:用于比较运算。包括大于 (>) 、小于 (<) 、等于 (==) 、 大于等于 (>=
阅读全文
摘要:1. 数据类型 数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类 1.1 基本数据类型 1.1.1 整型 整型数据在内存中的存放形式:数值是以补码表示的。 正数的补码和原码相同; 负数的补码:将该数的绝对值的二进制形式按位取反再加 1。 1) int:2 个字节; 2) short
阅读全文