320 likes | 462 Views
C++ 程序设计. 主讲:资讯系张玉宏. 第 2 章 C++ 的基本语法. 2.1 变量的声明 所有 C++ 程序内的变量 (variables) 都需要声明 (declare) 才能使用。例如有三个整数要声明,则声明语句可以写成如下两种方式: int x,y,sum; 或者:. 2.1 变量的声明(续). int x;// 第一个输入的整数 int y;// 第一个输入的整数 int sum;// 第一个输入的整数 讨论:前一种声明简洁,而后一种声明便于在每个变量的右边追加注释说明。. 变量声明的两重含义. 1. 指定在内存中分配空间大小。
E N D
C++程序设计 主讲:资讯系张玉宏
第2章 C++的基本语法 • 2.1 变量的声明 所有C++程序内的变量(variables)都需要声明(declare)才能使用。例如有三个整数要声明,则声明语句可以写成如下两种方式: • int x,y,sum; 或者: 升达大学资讯系
2.1变量的声明(续) • int x;//第一个输入的整数 • int y;//第一个输入的整数 • int sum;//第一个输入的整数 讨论:前一种声明简洁,而后一种声明便于在每个变量的右边追加注释说明。 升达大学资讯系
变量声明的两重含义 • 1.指定在内存中分配空间大小。 而且变量在声明时,可以同时给予初始化(即赋予初始值) • 2.规定这个变量所能接受的运算。 例如整数数据类型int只能接受加、减、乘、除等四则运算符“+,-,*,/”. 升达大学资讯系
注意的一个事项 • 如果某个变量x为整数型,则要想以“X^2”表示求X2,那么系统在编译的时候就会出错,这就是因为“^”不是整数型int所能接受的运算符。 升达大学资讯系
Borland C++编译器的取得与安装 • 由于C++的重要性与日俱增,目前可以使用的编译器及开发环境很多。如:Microsoft Visual C++ ,Borland C++,Watcom C++,Fujisu C++ compiler,IBM Visual Age C++,GNU-Win32等,只要符合ANSI/ISO标准的C++编译器都能编译课堂所讲述的C++程序。 升达大学资讯系
Borland C++编译器的取得与安装 • Source Code的撰写可以是任何编辑软件,如“记事本”、“WordPad”,TextEditor等,也可以使用商用程序开发环境内赋的编辑器,如BC,VC等 • 在用“记事本”编写Source Code时注意保存C++的源文件的扩展名为*.cpp,避免被自动带上.txt的扩展名 升达大学资讯系
Borland C++编译器的取得与安装 • Borland C++ Compiler 5.5是由Borland 公司提供的免费下载的编译器,由于该公司是C++语法标准的制定者之一,并不断再网络上提供最新版本,可保证使用的是最可靠的编辑器,而且该程序非常简练,不到10M大小,却足够完成C++的研讨与学习。所以本课程采纳此版本作为C++主要编译器. • 下载网址:http://www.borland.com/bcppbuilder/freecompiler/cppcssstemps.html • 下载文件名为:freecommandLinetools.exe 升达大学资讯系
Borland C++编译器的取得与安装 • 假设Borland C++ Compiler 5.5安装在“C:\borland\bcc55”路径下,则还需要进行如下两个步骤: • (1)将“C:\borland\bcc55\bin”加入系统文件预设路径。亦即修改C:\下的autoexec.bat文件,加入两句语句: PATH=%PATH; C:\borland\bcc55\bin; DOSKEY 升达大学资讯系
Borland C++编译器的取得与安装 • (2)制作bcc32.cfg和ilink.cfg两个配置文件,并存放在文件夹C:\Borland\bcc55\bin里,其中bcc32.cfg为编译器的编译选项指定文件,内含两句指令: -I"C:\Borland\Bcc55\include" -L"C:\Borland\Bcc55\lib“ 而ilink.cfg则是连接器的连接选项指定文件,含下列单行指令: -L"C:\Borland\Bcc55\lib" 升达大学资讯系
Borland C++编译器的取得与安装 完成上述步骤后重新启动即可。 同时还可以在borland公司网址下载执行文件:TurboDebugger.exe安装,以配合borland C++ Compiler使用,协助复杂程序的调试。 下在网址: http://www.borland.com/bcppbuiler/turbodebugger/turbodebug55seps.html 升达大学资讯系
2.2 C++标识的命名规则 • C++的标识指的是各种变量、自定义数据类型,其命名必须满足如下规则: • 1.标识由英文、数字和下划线符号“_”构成,长度不限。 • 2.区分大小写 • 3.标识符不可以用数字开头 • 4.不可以使用C++内设关键词(keywords) 升达大学资讯系
C++标识的命名规则(续) • 除了上述规则以外,还需要注意各种编译器都有自行定义,仅供内部使用的各种标识必须避免使用。这些标识通常有如下几个特征: • 1.使用底线符号当开头 • 2.全部使用大写字母,长度至少三个字母,且不含数字 • 3.全部使用小写字母,长度至少三个字母,且不含数字 升达大学资讯系
2.3基本数据类型 • 1.整型(integer values) 整型是指所有不具有小数点的数值。如:6,-321,4l,5L等 从例子可以看出整数结尾处可以有“l”或者“L”表示长整数(Long integer)具有较大的存储空间。 32位计算机int型占4个字节,而short int 占2个字节。Long int 占4个字节 升达大学资讯系
例题2.1 • 下列哪些整数书写是错误的?() A. 6. B. -3,728 C. 0.0 D. $05 E. 08 F. 0x2A 升达大学资讯系
8进制与16进制的表示方法 • 当整数前加入0时,数字是以八进制的方式存储的,如果加上0x,则是以16进制的方式存储的。整数后加U或者u表示该整数是不加符号的整数(unsigned int)。例如: 48U//unsigned int 75ul//长、无符号整数 012//八进制(=10) 0X12//十六进制(=18) 升达大学资讯系
2.浮点数(floating point number) • 浮点数是指带有小数点的数值,用以描述实数(real number).例如: 36.0,+3.92L,3.7f,3.98F 浮点数必须有小数点,除了f,F,l,L之外不容许掺杂其它符号。 为了表示非常大或者非常小的数值,浮点数也有和科学计数法一样的指数表示法(exponential notation).如: -6.24E-5 或者 -6.24e-5 升达大学资讯系
2.浮点数(续) • 对于浮点数而言,预设的数据类型是double,可以在数字之后加f或F改成float型。加l或L则为long double. 升达大学资讯系
3.char (字符型) • char实际也是整型数据的一种。每个字符型变量占一个字节。从ASCII码可以看出其值在0~255之间 升达大学资讯系
4.bool(布尔型) • bool实际也是整型数据的一种。每个字符型变量占一个字节。其值为0或者1 1——ture 0——false 更为广义的讲,在C++的布尔中,0为false,而非0为ture,而不是仅仅局限于“1”。 升达大学资讯系
5.void(无值) • void(无值)没有长度,此类型用以声明无返回值的函数类型,或者当用户想进行指针类型的转换时,当基本类型使用 升达大学资讯系
2.4 常量与变量 • 1.常量 在程序执行的时候,所有的数据都必须依次放在内存里。 常量可以分为整型常量、实型常量、字符常量。例子参见教材p13 特别需要注意的是实型常量只能使用10进制表示。 升达大学资讯系
C++中的转义字符 • 在C++中还有一种表示字符常量的方式,即所谓的“转义序列”(escape character) 若转义字符的后边是一个整型常量,则该常量必须是一个无起首0的八进制或者十六进制。如:‘\101’,‘\x41’,’A’均表示字符常量A. 升达大学资讯系
C++中的转义字符(续) • 由于ASCII码的值为0~255,所以转义字符后边的整形常量如果用8进制表示则其长度不得超过3位;若为16进制表示,则不得超过2位。 • 常见的转义字符及其含义如下表所示: 升达大学资讯系
字符串常量 • 字符串常量是用一对双引号括起来的字符序列。例如: “This is a sample.” 双引号不是字符串的一部分,仅仅作为定界符。一个字符串常量并不是一系列字符简单的组合,系统会在每个字符串常量的尾部加一个字符常量‘\0’,表示该字符串常量到此结束。 升达大学资讯系
字符串常量(续) • 字符常量‘\0’是一个ASCII码为0,称为NULL. • 注意:阿拉伯数字0~9中“0”其ASCII码为48 • 所以虽然“This is a sample.”只有17个字符(含空格),但需要存储单元却有18个。 • 注意:空格的ASCII码为32,它也是一个字符 升达大学资讯系
字符与字符串 • 对于文字数据则以字符(character)和字符串(string)两种数据类型表示。 字符数据:由于英文字母本身也可以作为变量的名称,为了区别,所有字符都以单引号前后包起来: ‘a’ ,’A’ ,’$’,”+” 字符以ASCII码存储,每个字符占一个字节大小。 升达大学资讯系
字符与字符串(续) • 例如: a 存成 01100001 b 存成 01100010 字符的数据类型写成char,为character的缩写。 char ch=‘f’;//定义一个字符变量。其内容存入字母f,而在输出时,将直接显示字符的内容,而不再有单引号出现。 升达大学资讯系
字符与字符串(续) • 字符数据类型无法存储中文,因为一个中文字符占两个字节。中文的常用字符将近达到两万多个,一字一码,其编码没有简化的规律可言。 • 输入法的全角和半角的区别就来源于此。 升达大学资讯系
例题 • 1.“中文”这个字符串占有几个存储单元() A. 2个 B.4个 C. 5个 D.3个 • 由于字符型数据在实质上也是一种整型数据,所以字符也可以进行运算。 升达大学资讯系
例题 • 2. cout<<‘a’+0<<endl; 输出: cout<<‘0’+0<<endl; 输出: cout<<‘\0’+1<<endl; 输出: 升达大学资讯系