31 各种显式的数或字符也是一种常量 ? 立即数:进制,类型 ? 字符常量:单引号: A ? 字符串常量:双引号 “ ABC ” ? 换码序列(转义序列) ? 反斜杠 \+ [ 一个字母 | 三位八进制数 |x 二位十六进制数 ] ? 用途: ? 字符 ? 控制字符:回车、换行、 tab ? 不方便表示的字符,如 ”、、 \ 等 面向对象的程序设计 2.5 数组 ( 了解 ) 33 一、什么是数组 把具有相同类型的若干变量按有序的形式组织 起来。这些按序排列的同类数据元素的集合称 为数组。 C 中属于构造(复合)数据类型 面向对象的程序设计 34 二、数组的声明 声明格式: ? 类型说明符 数组名 [ 常量表达式 ] , …… ; ? 类型是数组元素的类型 ? 表达式是常量表达式,不能含变量 ? 表达式的值是数组元素的最大个数, ? 元素从 0 开始, a[0] 命名遵守标识符的命名规则,不允许与其他标 识符重名 数据类型、存储类型及其它特性与变量相同 面向对象的程序设计 35 三、数组的使用、赋值和初始化 使用:不能整体使用,使用数组元素 赋值:按元素赋值 , 不能整体赋值 初始化: ? 外部数组、内部 static 可以初始化(原来),现在 一般允许 ? 使用初始化列表,一次初始化 ? int a[5]={100,120,140,160,200}; ? int b[]={1,3,6,8}; 注意下标溢出的问题 面向对象的程序设计 36 #define MAXA 10 void main() { int i, max, a[MAXA]; printf(input 10 numbers:\n); for(i=0;iMAXA;i++) scanf(%d, a[i]); max=a[0]; for(i=1;iMAXA;i++) if(a[i]max) max=a[i]; printf(maxmum=%d\n, max); } 面向对象的程序设计 2.6 运算和表达式 38 一、基本概念 运算:对数据(对象)进行的处理 操作符(运算符, operator ):描述不同运算 的符号,同一个运算符对不同类型的数据,运 算的逻辑意义一样,处理的过程是不同的。 ? 一元 ( 单目)、二元(双目)、三元运算符 面向对象的程序设计 39 表达式:有操作符、操作数组成的式子,用来 描述一个计算过程,涉及类型转换、优先级、 结合规则、求值顺序等 ? 优先级:表达式中多个操作符的执行顺序的 规定性,如 : *x++; // 先做 x++ 结合性:同级操作符的执行顺序的规定性, 如: a=b=6; // 先做 b=6 表达式是 C/C++ 的语句 面向对象的程序设计 40 二、算术操作符 赋值运算 ? a=3, b=c; d=r=f; 算术运算 ? + - * / % ? 操作数的类型,混合运算,类型转换 ? 表达式的类型 算术赋值运算 ? += -= *= /= %= 面向对象的程序设计 41 赋值运算式作为一个整体的值 赋值运算表达式整个表达式的值是最右侧操作数的值 面向对象的程序设计 42 算术运算问题 ( Arithmetic Problems ) 超出范围,溢出 整型数表示范围有限,如: 1+2+3+...+10000 不能用整型变量累计的一般循环方法来解 : int sum = 0; for(int i=1; i=10000; ++i) sum += i; coutsum“ \ n” ; 面向对象的程序设计 43 浮点数的精度和有效位 影响比较的正确性,如: float f1 = 7.123456789; float f2 = 7.123456785; if ( f1==f2 ) cout “ f1 equal to f2\n ” ; float f = 1.0/3.0; double d = 1.0/3.0; if ( g==d ) cout “ g not equal to d\n ” ; 结果为: f1 equals to f2 g not equals to d 面
原创力文档

文档评论(0)