《C++程序设计基础知识.ppt》由会员分享,可在线阅读,更多相关《C++程序设计基础知识.ppt(28页珍藏版)》请在优知文库上搜索。
1、C+C+程序设计程序设计 基础知识基础知识1.2 1.2 简单的简单的C+C+程序实例程序实例/ 程序文件名为程序文件名为EX1_6.cpp/* C+程序基本结构程序基本结构 */# include max(int i, int j) /A if (i=j) return i; else return j; void main(void) /B coutij; /从键盘上输入变量值从键盘上输入变量值 coutmax number is:max(i, j) n ; /输出提示和结果输出提示和结果程序组成:程序组成:注释注释编译预处理指令编译预处理指令程序体程序体由若干函数组成,其由若干函数组成,
2、其中有且仅有一个主函数中有且仅有一个主函数main(),这是程序的(),这是程序的执行入口。在执行入口。在MFC编程中编程中定义为定义为winmain()。()。 C+允许的书写格式非常自由,一个语句可以写在若干行,一行也可以写若干个语句。(1)对齐规则:同一层次的语句必须从同一列开始,同一层次的开花括号必须与对应的闭花括号在同一列上。(2)缩进规则:属于内一层次的语句必须缩进一个Tab。(3)任一函数的定义均从第一行开始书写。(4)严格区分大小写字母。程序的书写规则程序的书写规则1. 需求分析,算法(方法)描述;2. 编辑:利用程序编辑器(IDE)完成源程序编写(*.cpp);3. 编译:产
3、生目标程序(*.obj);4. 连接:将一个或多个目标程序与库函数连接产生可执行文件(*.exe);5. 调试:运行与分析程序的结果;C+C+程序的开发步骤程序的开发步骤 程序是由对数据的描述和对数据进行处理的语句组成,数据可以分为变量和常量两大类,在C+语言中有5种基本的数据类型。 程序 文件模块函数语句词法符号 程序的语句是由不可再分的基本单元词法符号构成,C+共有6种词法符号:关键字、标识符、常量、字符串、运算符和标点符号。 1.3.1 C+1.3.1 C+的字符集的字符集26个个小写字母小写字母 abcdefghijklmnopqrstuvwxyz 26个个大写字母大写字母 ABCDE
4、FGHIJKLMNOPQRSTUVWXYZ 10个个阿拉伯数字阿拉伯数字 0123456789 其他符号其他符号 + - * / = , . _ : ; ? | ! # % & () 空格空格 1.3 C+1.3 C+的词法单位的词法单位 1.3.2 1.3.2 关关 键键 字字数据类型说明数据类型说明符与修饰符符与修饰符bool char wchar_t class const double enum float int long short signed struct union unsigned void volatile存储类型说明存储类型说明符符auto extern inline
5、register static访问说明符访问说明符Friend private protected public其它说明符其它说明符asm operator template this typedef virtual 语句与标号语句与标号break case catch continue default do else for goto if return switch throw try while 运算符及逻辑运算符及逻辑值值delete false new sizeof true表表2-1 C+2-1 C+常用关键字及分类常用关键字及分类 VC+中还有一些专用的关键字,中还有一些专用的关
6、键字,它们都以双下划线开头:它们都以双下划线开头: _ _asm _ _based _ _cdecl _ _emit _ _export _ _far _ _fastcall _ _fortran _ _huge _ _interrupt _ _loadds _ _multipile_inheritance _ _near _ _pascal _ _saveregs _ _segment _ _self _ _signal_inheritance _ _stdcall _ _virtual_inheritance 标识符是对变量、函数、结构和其它各种用户自定义对象的命名。C+语言中对标识符的命
7、名一般遵守下列几点原则: 1标识符的第一个字符必须是字母或下划线,随后的字符必须是字母、数字或下划线; 2标识符的长度可以是一个或多个字符,最多31个(87ANSI),VC+中,最多可以有247个字符。 3C+中字母区分大小写。 4. C+中关键字不能用作标识符。 1.3.3 标识符错误1counthi therehigh.balance$123AB-Cthis原因第一个字母为数字含有空格含有.$不是字母含有 - 号,不是下划线关键字正确counttext32high_balanceS123AB_Cmthis1.3.4 1.3.4 标点符号标点符号标点符号包括标点符号包括#、( )、 、 ,、
8、,、 :、:、 ;、;、 、 等。等。 图图1-1 C+的数据结构C+的数据类型基本数据类型非基本数据类型数组 type 指针 type *结构 struct联合 union枚举 enum类 class整 型 int字符型 char逻辑型 bool无值型 void 实 型 float 双精度型 double实 型1.4 C+的数据类型5种基本的数据类型字符类型char1字节-128 +127整数类型int2字节(4) -32768 +32767浮点数类型float4字节约6位有效数字 1e-37 1e+37双精度类型double8字节约10位有效数字空类型void C+语言有5种基本的数据类型
9、,它们是: C+语言中的其它数据类型都是从这5种基本数据类型演变而来。 一般来讲,一个字符占用1个字节的存储空间,一个整数占用2个字节的存储空间,但不能肯定。ANSI C强调的是每种数据类型的最小范围,而不是实际占用的字节长度。 除了void类型之外,基本数据类型的前面都可以加上修饰符。修饰符用来改变基本数据类型的意义,以便更加准确地适应各种情况的需求,C+语言提供了4种类型修饰符: signed有符号unsigend无符号long长型short短型修饰基本数据类型 C+中还增加了一个 const (恒型)修饰符。一个变量由const修饰后,其值就不能再被改变。类类 型型名名 称称占用字节占用
10、字节数数取取 值值 范范 围围bool布尔型布尔型 true, false(signed) char有符号字符有符号字符型型1-128 127unsiged char无符号字符无符号字符型型10 255(signed) short (int)有符号短整有符号短整型型2-32768 32767unsigned short (int)无符号短整无符号短整型型20 65535(signed) int有符号整型有符号整型4-231 (231-1)unsigned (int)无符号整型无符号整型40 (232-1)(signed) long (int)有符号长整有符号长整型型4-231 (231-1)u
11、nsigned long (int)无符号长整无符号长整型型40 (232-1)float实型实型4-1038 1038double双精度型双精度型8-10308 10308long double长双精度型长双精度型8-10308 10308void无值型无值型0无值无值 signed最重要的用途是用来修饰字符型,对整型的修饰是多余的,缺省情况下整型为signed,除非修饰为unsigned。 有符号整数与无符号整数的区别是对整数最高位的解释。若指定为signed int,那么编译程序生成代码时将整数最高位作为符号标志。若符号标志是0,则数值为正;若符号标志为1,则数值为负。结果为 1; 原因
12、是,由于在计算机中负数是采用2的补码形式存放,对于无符号数65535,在内存中对应的二进制形式为:11111111,11111111当做为有符号数时,其对应的数值就为 1;/* 符号位不变,其它各位取反,末位加1, 10000000,00000001 -1 */例如,有如下类型定义:unsigned short int a;short int b;a = 65535;b = a;此时若输出变量b的值,结果为多少?定义:变量就是数据连同其存储空间的抽象,它代表了某个存储空间及其所存储的数据。因此在C+中,变量包含两个要素:数据值和其对应的存储空间。变量定义的一般形式是:类型 变量表;说明:类型必
13、须是C+支持的数据类型,或已经存在的自定义数据类型。变量表中可以只有一个标识符,或用逗号分隔开的多个标识符。 1.5 1.5 变量和常量变量和常量1.5.1 1.5.1 变量变量地址内存单元i = 255;&i 0 x40000 x4001 高8位00000000&为取地址运算符,表示变量i的地址为0 x40000 x4000 低8位111111111C+中要求:变量的定义可以在该变量使用之前的任何位置上;标准C中要求:变量的定义必须在语句块一开始的位置;例如:int i;short int si;unsigned int u;double b,pro,loss;int i; 表示一个被说明为
14、i的、占有2个内存单元存储空间的整形变量。 C+语言允许在定义变量的同时,通过使用“=”为变量赋值。这一过程称为对变量的初始化。例如:char ch = a;int first = 0;float balance = 123.23;float f1, f2 = 3.5; /* 只对f2赋初值 */ 一个变量如果在定义时用了const修饰符,该变量就成为常变量。常变量的使用与普通变量一样,所不同的是,常变量必须在定义时赋值,即常变量在定义时必须初始化,并且,在程序执行过程中,常变量的值不得改变。但可以通过取地址运算&获得其地址值。例如:const float PI = 3.14159; 正确co
15、nst int age;age = 25;错误:没有初始化常变量const float salary = 756.80;salary = salary * 1.1;错误:常变量的值不能改变 常量是指在程序的整个生存期中其值保持不变的量。通常是在程序中直接给出的数值及字符。在C+中常量有三类:数、字符和字符串,另外,对于一些不可打印的字符采用转义序列的方式来表示。 (1) 数 数又分为整数和实数。在C+中整数有三种不同的表示形式:十进制、八进制和十六进制。例如: 17十进制数 017八进制数= 1 * 8 + 70 x17十六进制数= 1 * 16 + 717L十进制长整形数 0 x17L十六进
16、制长整形数 1.5.2 1.5.2 常量常量 实数又称为浮点数,在C+中,浮点数都必须以十进制表示,可采用小数和指数两种表现形式。例如: float123.23F4.34E-3Fdouble123.231E2(2) 字符常量和串常量 字符常量是指用单引号括起来的单个字符。如B、b、4、+。在单引号中包含的字符不能是单引号 和反斜线 。 在C+语言中,字符常量具有数值,其值就是该字符所对应的ASCII值,例如:char ch1 = 1; char ch2 = 65;字符常量ch1中存放的是字符1,其所对应的1个字节存储单元中所存放的值为字符1所对应的ASCII码的值,该值为:49。内存单元中的存放形式为:00110001。 由此可见,在C+语言中,字符常量可以参加运算。例如:(c + A a)这样的表达示是合法的,它表示将小写字母c转换为大写字母C。 字符串常量是指用双引号括起来的一串字符。同样,双引号包含的字符不能是双引号“ “ ”和反斜线“ ”。例如:“x”, “abcdefg”, “UNIX操作系统”; C+语言中,字符串常量在内存中存储时,在其尾部自动加上一个NULL字符,用来表