1. 首页
  2. 文档大全

第2章 简单数据及运算

上传者:7****0 2022-06-06 20:31:43上传 PPT文件 968.51KB
第2章 简单数据及运算_第1页 第2章 简单数据及运算_第2页 第2章 简单数据及运算_第3页

《第2章 简单数据及运算》由会员分享,可在线阅读,更多相关《第2章 简单数据及运算(74页珍藏版)》请在文档大全上搜索。

1、-2-3-4-5-6-p常见数据类型的长度并不适用于所有系统。常见数据类型的长度并不适用于所有系统。pC+C+规范要求:规范要求:shortshort的长度不超过的长度不超过intint,intint长度不超过长度不超过longlong 很多系统在实现时会有差异。很多系统在实现时会有差异。p可以通过可以通过sizeofsizeof运算符判断某种类型占用的字节数。运算符判断某种类型占用的字节数。-7-#include int main()std:cout“Size of int: “sizeof(int)“n”;std:cout“Size of short: “sizeof(short)“n”;

2、std:cout“Size of long: ”sizeof(long)“n”;std:cout“Size of char: “sizeof(char)“n”;std:cout“Size of bool: “sizeof(bool)“n”;std:cout“Size of float: “sizeof(float)“n”;std:cout“Size of double: “sizeof(double)“n”;return 0;psizeofsizeof计算某种数据类型或某个变量占用的字节数。计算某种数据类型或某个变量占用的字节数。pVC6VC6中不支持中不支持long longlong lon

3、g类型,类型,Dev-C+Dev-C+支持。支持。-8-p浮点数一定是带符号的,不能用浮点数一定是带符号的,不能用unsignedunsigned修饰。修饰。-9-pcharchar也可以存储很小的整数(对应的也可以存储很小的整数(对应的ASCIIASCII码值),但码值),但 不提倡该用法。不提倡该用法。-10-pC+C+中标识符的基本规则:只能由数字、字母、中标识符的基本规则:只能由数字、字母、_ _构成;构成; 不能以数字开头;不能使用不能以数字开头;不能使用C+C+关键字。关键字。p变量名要符合标识符的规则,可以包含字母、数字、变量名要符合标识符的规则,可以包含字母、数字、_ _, 不

4、能包含空格和特殊字符不能包含空格和特殊字符p相同类型的变量可以在一行定义。相同类型的变量可以在一行定义。pC+C+严格区分大小写,严格区分大小写,highScorehighScore和和highscorehighscore为不同变量。为不同变量。p应该使用具有描述性的变量名,易于阅读和理解。应该使用具有描述性的变量名,易于阅读和理解。Dram_rectanglee_myfriendend1_peointmy$int main()double x; double y; double z;z=x*y;return 0; int main() double width; double height;

5、 double area;area=width * length;return 0; -12-pC+C+中的中的= =用来为变量赋值。用来为变量赋值。p可以对变量多次执行赋值操作。可以对变量多次执行赋值操作。p变量定义时同时变量定义时同时“赋值赋值”称为初始化,常量在定义时必须称为初始化,常量在定义时必须 初始化。初始化。-13-#include int main()unsigned short width=5, length;length=10;unsigned short area = width * length;std:coutWidth: widthstd:endl;std:cout

6、Length: lengthstd:endl;std:coutArea: areastd:endl;return 0;p标准库中的标准库中的endlendl也表示输出换行符,与也表示输出换行符,与“n” “n” 等价。等价。-14-#include int main()int rateInt = 5.6;std:cout“rateInt: “rateIntstd:endl;return 0;p高精度数据赋值给低精度数据类型时,会产生精度损失,高精度数据赋值给低精度数据类型时,会产生精度损失, 编译器通常会给出警告。编译器通常会给出警告。p浮点数赋值给整数时,会截断小数部分,不采用四舍五入浮点数

7、赋值给整数时,会截断小数部分,不采用四舍五入。-15-p使用使用typedeftypedef并没有创建一种新的数据类型,只是将并没有创建一种新的数据类型,只是将 USHORT USHORT作为作为unsigned shortunsigned short的简捷表示。的简捷表示。-16-17-n如,如,323L、0 x4a2L、-03342l-18-p整数字面常量可以使用其它进制,整数字面常量可以使用其它进制, 前缀前缀0 x0 x或或0X0X表示表示1616进制,前缀进制,前缀0 0表示表示8 8进制。进制。如,十进制的如,十进制的6565,还可以表示为,还可以表示为01010101、0 x41

8、0 x41-19-H e l l on 0-20-p声明符号常量时,必须要对其初始化,事后不允许对符号声明符号常量时,必须要对其初始化,事后不允许对符号 常量进行赋值。常量进行赋值。p通常将符号常量名称全部大写,以便于识别。通常将符号常量名称全部大写,以便于识别。p编写代码时应尽量减少字面常量的使用,比如多处使用编写代码时应尽量减少字面常量的使用,比如多处使用 字面常量字面常量50005000,一旦变更难以替换和维护;使用符号常量,一旦变更难以替换和维护;使用符号常量 后,只需要变更一处常量定义。后,只需要变更一处常量定义。-21-p#define#define是预处理编译指令,不是语句,结尾

9、不能加分号。是预处理编译指令,不是语句,结尾不能加分号。p在预处理阶段(编译之前),对在预处理阶段(编译之前),对#define#define执行简单的文本执行简单的文本 替换,将程序中所有替换,将程序中所有KILLBONUSKILLBONUS替换为替换为50005000p通过通过#define#define定义符号常量是为了与定义符号常量是为了与C C语言保持兼容,这种语言保持兼容,这种 常量没有指定数据类型,编译器无法进行类型检查,不常量没有指定数据类型,编译器无法进行类型检查,不 建议使用。建议使用。-22-p通过通过enumenum创建名称为创建名称为COLORCOLOR的枚举类型。的

10、枚举类型。pREDRED、BLUEBLUE、GREENGREEN、WHITEWHITE、BLACKBLACK是是5 5个颜色常量,缺省个颜色常量,缺省 情况下对应的值为情况下对应的值为0 0、1 1、2 2、3 3、4 4。p第第2 2个个COLORCOLOR类型,类型,REDRED值为值为100100,BLUEBLUE为为101101,GREENGREEN为为500500, WHITE WHITE为为501501,BLACKBLACK为为700700。p使用枚举常量的优势:代码中不是使用无意义的数字,使用枚举常量的优势:代码中不是使用无意义的数字, 如如501501,而是使用符号化的名字,如

11、,而是使用符号化的名字,如WHITEWHITE。-23-24-24#include #include using namespace std;using namespace std;intint main() main() const const intint PRICE = 30; PRICE = 30; intint num, total; num, total; float v, r, h; float v, r, h; num = 10; num = 10; total = num total = num * * PRICE; PRICE; coutcout total total e

12、ndlendl; ; r = 2.5; r = 2.5; h = 3.2; h = 3.2; v = 3.14159 v = 3.14159 * * r r * * r r * * h; h; coutcout v v endlendl; ; return 0; return 0; 常量常量变量变量变量先声变量先声明后使用明后使用符号常量符号常量-25-25#include #include using namespace std;using namespace std;intint main() main() const const intint PRICE = 30; PRICE = 30

13、; intint num, total; num, total; float v, r, h; float v, r, h; num = 10; num = 10; total = num total = num * * PRICE; PRICE; coutcout total total endlendl; ; r = 2.5; r = 2.5; h = 3.2; h = 3.2; v = 3.14159 v = 3.14159 * * r r * * r r * * h; h; coutcout v v endlendl; ; return 0; return 0; shortshortu

14、nsigned shortunsigned short 2 2字节字节intintunsigned intunsigned int 4 4字节字节longlongunsigned longunsigned long 4 4字节字节整型变量声明整型变量声明整型变量整型变量整型常量整型常量-26-&字符常量 单引号括起来的一个字符,如:a, D, ?, $a, D, ?, $&字符变量 用来存放字符常量例:char c1, c2;char c1, c2; c1 = a; c1 = a; c2 = A; c2 = A;&字符数据在内存中的存储形式 以ASCIIASCII码存储,占1 1字节,用7 7

15、个二进制位-27-&字符数据的使用方法 字符数据和整型数据之间可以运算。 字符数据与整型数据可以互相赋值。&字符串常量例:CHINA:CHINA a a a a所以:char c;char c; c=a; c=a;-28-&布尔型变量的说明:例:boolbool flag flag; ;&布尔型数据的取值:只有 falsefalse 和 true true 两个值-29-29例: intint a = 3; a = 3; double f = 3.56; double f = 3.56; char c = a; char c = a; intint c(5); c(5);Page 29-30-

16、30例如:float c;float c;intint a, b; a, b;c = float(a) / float(b); c = float(a) / float(b); 或 c = (float)a / (float)b; c = (float)a / (float)b; -31-31&autoauto 属于一时性存储,其存储空间可以被若干变量多次覆盖使用。®isterregister 存放在通用寄存器中。&externextern 在所有函数和程序段中都可引用。&staticstatic 在内存中是以固定地址存放的,在整个程序运行期间都有效。-32-33-34-p编译器忽略空白

17、,但标识符中间不能包含空格。编译器忽略空白,但标识符中间不能包含空格。p用于代码缩进的制表符和空格属于空白,良好和一致的缩进用于代码缩进的制表符和空格属于空白,良好和一致的缩进 有助于识别程序块和函数的开始和结束。有助于识别程序块和函数的开始和结束。-35-temp = a; a = b;b = temp;-36-37-38-39-40-41-42-43-44-45-例 :输出单个字符#include /或者包含头文件stdio.h: #include using namespace std;int main( )char a,b,c; a=B;b=O;c=Y; putchar(a);putc

18、har(b);putchar(c);putchar(n); putchar(66);putchar(79);putchar(89);putchar(10); return 0;运行结果为BOYBOY-46-47-48-p假设假设y y的值为的值为2020,语句将使,语句将使x x变为变为3333,整个语句也有,整个语句也有1 1个返回个返回 值(即值(即x x的值),整个语句也是的值),整个语句也是1 1个表达式。个表达式。p表达式表达式y+13y+13,返回,返回y y和和1313的和,返回值存储到的和,返回值存储到x x中。中。p表达式表达式x=y+13x=y+13,返回,返回x x的值,

19、返回值存储到的值,返回值存储到z z中。中。p表达式表达式z=x=y+13z=x=y+13,返回,返回z z的值,该值被系统丢弃。的值,该值被系统丢弃。-49-#include int main()int x=0,y=72,z=0;std:coutBefore, x: x y: y;std:cout z: zstd:endl;z=x=y+13;std:coutAfter, x: x y: y;std:cout z: zstd:endl;return 0;-50-51-52-53-p赋值运算符将右值保存到左值对应的变量中。赋值运算符将右值保存到左值对应的变量中。p常量或表达式可以作为右值,但不能

20、作为左值。常量或表达式可以作为右值,但不能作为左值。p95=grade;95=grade;和和y+13=x;y+13=x;都是非法的赋值运算。都是非法的赋值运算。【例例2_6】交换两个整数交换两个整数 思路:(思路:(1)增加一个整型变量辅助交换)增加一个整型变量辅助交换 完整源代码:完整源代码:2_6.txt (2)不用任何辅助变量)不用任何辅助变量 2_6_2.txt-54-pC+C+中没有乘方运算符,其它语言中的乘方运算(中没有乘方运算符,其它语言中的乘方运算(x2x2),在),在 C+ C+中表示异或运算。中表示异或运算。如:如: int a=15, b=8, c; double x(

21、15), y=8, z; c= a+b; c=a-b; c=a*b; c=a/b; c=a%b; z=x+y; z=x-y; z=x*y; z=x/y; z=x%y; 如:如:char m=b,n; n=m + A a; n=m +2;-55-#includeint main()char m=b,n; n=m+A-a;std:coutn=nn;n=m+2;std:coutn=nn;std:coutm +2=m+2std:endl;-56-p求模运算的求模运算的2 2个数必须为整型或字符数据,否则编译器报错。个数必须为整型或字符数据,否则编译器报错。【例例2_7】输出一个整数的个位数、十位数、百

22、位数输出一个整数的个位数、十位数、百位数完整源代码:完整源代码:2_7.txt-57-58-59-p前置前置+先递增先递增x x的值(变为的值(变为6 6),再将其值赋给),再将其值赋给sumsum,最终,最终x x 和和sumsum的结果都为的结果都为6 6。p后置后置+先取先取x x的值(为的值(为5 5),赋值给),赋值给sumsum,再将其值递增,最终,再将其值递增,最终 x x为为6 6而而sumsum为为5 5。-60-p学习编程时,不必要记住所有运算符的优先级,查看表学习编程时,不必要记住所有运算符的优先级,查看表4.14.1。p对表达式中运算符优先级有疑问时,可以通过加括号的方

23、法对表达式中运算符优先级有疑问时,可以通过加括号的方法 明确计算的顺序,括号不会影响性能。明确计算的顺序,括号不会影响性能。-61-62-pmyAgemyAge和和yourAgeyourAge不等,关系运算的返回结果为不等,关系运算的返回结果为falsefalse,coutcout 输出输出falsefalse值时,缺省输出显示值时,缺省输出显示0 0。pC+C+中中= =和和=是两个完全不同的运算符,两者不能混为一谈,是两个完全不同的运算符,两者不能混为一谈, 是初学者容易出错的地方。是初学者容易出错的地方。-63-pC+C+还提供还提供& &、| |运算符,它们是按位运算的与和或运算,此外

24、运算符,它们是按位运算的与和或运算,此外 为按位异或运算,不要混淆它们。为按位异或运算,不要混淆它们。-64-65-66-aba&ba|b!a00000010111001111110-68-p在复杂表达式,记住使用括号清晰表达计算顺序。在复杂表达式,记住使用括号清晰表达计算顺序。p编程的目的是正确实现功能,并且让其易于理解。编程的目的是正确实现功能,并且让其易于理解。-69-p2 2条语句完全等价,但第条语句完全等价,但第2 2种写法更加清晰,应养成良好习惯。种写法更加清晰,应养成良好习惯。-70-71-71sizeofsizeof ( () )sizeofsizeofsizeofsizeof( () )sizeofsizeof-72-73-表表 2 2- -3 C+3 C+中常用运算符的优先级、功能和结合性中常用运算符的优先级、功能和结合性 优先级 运算符 功能说明 结合性 ( ) 改变优先级 : : 作用域运算符 数组下标运算符 成员选择 1 * * 成员指针选择 左结合 * 指针运算符 & 取地址 sizeof 求内存字节数 ! 逻辑求反 按位求反 + - 增 1、减 1 运算符 2 + - 取正、取负运算符 右结合 3 * / % 乘法、除法、取余 左结合 -74-


文档来源:https://www.renrendoc.com/paper/212535234.html

文档标签:

下载地址