240 likes | 407 Views
C 程序设计基础. 2.1 常量和变量 常量: 在程序运行过程中不会发生变化的量;例如 3 、 8 、 -4 时整型常量; 5.7 、 -3.2 是实型常量;‘ a ’、‘ d ’是字符型常量; 变量: 在程序运行过程中其值可能发生改变的量。如例 1-2 种的 width 和 height 就称为变量;每一个变量都有一个名字,根据变量的类型不同,系统将位每一个变量分配相应的内存单元; 注意: 1 、变量中的值:可根据程序的需要而改变; 2 、变量的类型:不同类型的变量所能存放的数据值的大小是不同的; 3 、变量名:用于区分不同的变量,既 标识符 ;.
E N D
C程序设计基础 • 2.1 常量和变量 • 常量:在程序运行过程中不会发生变化的量;例如3、8、-4时整型常量;5.7、-3.2是实型常量;‘a’、‘d’是字符型常量; • 变量:在程序运行过程中其值可能发生改变的量。如例1-2种的width和height就称为变量;每一个变量都有一个名字,根据变量的类型不同,系统将位每一个变量分配相应的内存单元; • 注意: • 1、变量中的值:可根据程序的需要而改变; • 2、变量的类型:不同类型的变量所能存放的数据值的大小是不同的; • 3、变量名:用于区分不同的变量,既标识符;
C程序概述 • 2.1 常量和变量 • 标识符:C语言中的标识符用于给程序种的常量,变量,函数,文件指针和数据类型等命名。其构成规则如下: • 1、标识符由英文字母(a~z,A~Z)或下划线开头,后面可跟字母、数字或下划线; • 2、标识符中的大 、小写英文字母表示不同含义,即代表不同的标识符,通常 C程序种的变量用小写字母,符号常量用大写字母; • 3、不同的 C编译系统对标识符所用的字符个数由不同的规定,ANSI C可以识别的标识符的前31个字符,但由有的C编译系统 只识别前8个字符; • 4、用户取名时,应当尽量遵循“见名知意”和 “简洁明了”的原则;
C程序设计基础 • 2.2 基本数据类型 整型 字符型 实型(浮点型) 枚举类型 数组类型 单精度型 基本类型 双精度型 结构体类型 构造类型 数据类型 共用体类型 指针类型 空类型
C程序设计基础 • 2.2 基本数据类型 • 整型类型 • 整型常量整型常量即整型常数 十进制整数、八进制整数(以0开头的数)、十六进制整数(以0x开头的数) • 整型变量的分类整型变量总体上可以分为有符号数和无符号数两类
C程序设计基础 • 2.2 基本数据类型 • 整型类型 • 整型变量的定义用定义类型字来定义变量的类型 ,一般放在函数开头的声明部分。 #include<stdio.h> void main() { int a, b, c, d;/* 定义整型变量 */ unsigned u; a = 1; b = -2; u = 10; c = a + u; d = b + u; printf( "a + u = %d \t b + u = %d \n", c, d ); } • 整型数据的溢出如果一个整形变量存放的值,超出它所允许的范围,将会产生溢出,例如一个int型变量,如果其值为 32767,再加1就会产生溢出,变成 -32768,但运行时并不报错。
C程序设计基础 • 2.2 基本数据类型 • 整型类型 • 整型常量的类型注意:1、一个整常量,如果其值在 -32768 ~+32767 范围内,认为它是int型,它可以赋给int型和long int型变量。 • 2、一个整常量,如果其值超过了上述范围,而且是在 -2147483648 ~ +2147483647范围内,则认为它是long int 型。 • 3、一个整常数后面加一个字母 u 或 U,认为是一个unsigned int 型常数。 • 4、一个整常数后面加一个字母 l 或 L,认为是一个long int 型常数。
小数部分 指数部分 C程序设计基础 • 2.2 基本数据类型 • 实型类型 • 实型常量的表示方法1、十进制小数形式:.123 23.12、 指数形式:123e3 1.234e34(e前必须有数字,e后指数必须为整数)在数的后面加字母 f或 F,就为单精度数,否则处理成双精度数。 • 实型变量 单精度(float): 4B 10-38 ~ 1038 6~7双精度(double): 8B 10-308 ~ 10308 15~16长双精度: 16B 10-4931 ~ 104932 18~19 • 实型数据在内存中的存放形式一个实型数据一般在内存中占四个字节,系统把一个实型数分成小数部分和指数部分,分别存放采用规范化的指数方式示,如:
C程序设计基础 • 2.2 基本数据类型 • 字符型类型 • 字符型变量 • 字符变量用来存放字符常量, • 字符变量的定义形式如下: • char c1,c2; • 可以用下面的语句对c1、c2赋值: • c1 = 'a'; • c2 = 'b'; printf(“%c,%c,%d,%d”,c1,c2,c1,c2); • 字符数据的存放一个字符常量放到一个字符变量中,是把该字符的ASCII码放在存储单元中。 • c1c2 97 98 注意:1、字符型数据和整形数据是通用的。但字符数据只能存放 0~255 范围内的整数。 2、字符数据与整数可以直接进行算术运算。3、字符数据与整型数据可以相互赋值。 4、Turbo C将字符数据处理成带符号的整数,如果不想按有符号处理,可将字符变量定义为unsigned char类型。
C程序设计基础 • 2.2 基本数据类型 • 字符型类型 • 字符常量C语言的字符常量是用单引号括起来的一个字符 ,如‘a’, 'X','A'。C语言还有一些特殊字符的常量,如下表
C程序设计基础 • 2.2 基本数据类型 • 各种数据类型值之间混合运算 • 数据类型转换整型、实型、字符型数据间可以混合运算。例如:10+’a’+1.5×2 -’b’ = 12.0000在运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的规则如下所示: 高double float long unsigned 低 int char, short 设 int i; float f; double d; long e;则式子 10 + ’a’ + i*f - d/e 的结果为 double 型。
C程序设计基础 • 2.3 运算符与表达式 • 运算符总汇
C程序设计基础 • 2.3 运算符与表达式 • 算术运算符 • 使用说明: • 1、两个整数相除的结果为整数,如4/3的结果为1,小数部分被舍去; • 2、两个参加运算的数中有一个数为实数,此时所有的数都按double型进行计算,其结果为double型数据; • 3、%运算符要求两个操作数都是整数,否则编译器会报错。例如5.3%3就是错误的表达式。如果实在要运算,可以先将其强制类型转换为整数,再进行求余,如(int)(5.3%3)=2;
C程序设计基础 • 2.3 运算符与表达式 • 赋值运算符与赋值表达式 • 使用说明: • 1、赋值号左边必须是变量; • 2、赋值号的作用是将表达式右边的值计算出来再赋值给左边的变量; • 3、原则上要求赋值号左右两边数据类型要一致,实在不一致时,系统将尽可能自动进行类型转换,把右边的数据类型转换为左边的;
C程序设计基础 • 2.3 运算符与表达式 • 关系运算符和关系表达式 • 使用说明: • 1、判断两个数是否相等,应该使用“==”而不是赋值号“=”; • 2、在书写“<=”,“>=”等符号时,中间不要有空格; • 3、算术运算符的优先级高于关系运算符,关系运算符高于赋值运算符;
C程序设计基础 • 2.3 运算符与表达式 • 逻辑运算符和逻辑表达式 • 使用说明: • 1、逻辑非优先级高于逻辑与和逻辑或,逻辑与和逻辑或优先级相同; • 2、C语言规定:非0都表示“真”,只有0表示“假”;
C程序设计基础 • 2.3 运算符与表达式 • 逗号运算符和逗号表达式 • 使用说明: • 1、逗号运算符是所有运算符当中优先级最低的;
C程序设计基础 • 2.3 运算符与表达式 • 自增和自减运算符 • 使用说明: • 1、“++”、“--”都只能作用于变量,不能作用于常量和表达式,例如3++,(a+b)--都是非法的; • 2、自增和自减运算符的优先级是相同的,而结合性的是“自右自左”,所以--i++这样的表达式是合法的,它表示先做i++ ,再做--i ; • 3、应该尽量避免书写a+++b这样的表达式,虽然在语法上它是正确的,但是你其实可以选择这样写(a++)+b,不是吗?
C程序设计基础 • 2.3 运算符与表达式 • 位运算符 • 使用说明: • 1、位运算符都是对二进制数据进行按位操作的,所以遇到3 &4这样的表达式,别忘了写先将数据转换为其对应的二进制; • 2、左移和右移只是对操作数进行按位移动而已,如果不是将运算结果赋值给原变量的话,就不会改变原变量的值,例如a>>2和a=a>>2是两码事,前者不会改变a的值,而后者就会改变;
C程序设计基础 • 2.3 运算符与表达式 • 其他运算符 • 使用说明: • 1、条件运算符是C语言中唯一的三目运算符,它的优先级比赋值运算符高一些,其结合方向为“自右至左”; • 2、取字节数运算中,变量或数据类型所占据的字节数是和编译器相关的,在不同的编译器中,同样的数据类型可能就占据了不同的字节数,例如int在TC中就2字节,而在VC中就占据了4个字节;
C程序设计基础 • 2.4 C语句概述 • C语句种类: • 1、表达式语句:在一个表达式后面加一个分号“;”,就构成表达式语句; • 2、函数调用语句:在函数调用后面加一个分号“;”,就构成函数调用语句; • 3、控制语句:控制C程序执行流程的语句,C语言中包含了选择和循环共9种流程控制语句; • 4、空语句:只有一个分号构成“;”,它并不执行任何具体操作,通常在特殊情况下做程序跳转的转向位置标记或循环语句的循环体; • 5、复合语句:由一对大括号{}把若干语句括起来的一组语句称为符合语句;
C程序设计基础 • 2.5 数据的输入与输出 • 字符输入/输出函数 • 使用说明: • 1、putchar函数带有一个参数,这个参数就是将要输出的字符,输出的默认终端指的是显示器; • 2、getchar函数没有带参数,所以你必须将终端输入进来的这个字符赋值给一个字符变量才行,输入的默认终端指的是键盘;
C程序设计基础 • 2.5 数据的输入与输出 • 格式化的输出 • 使用说明: • 1、格式控制字符穿是用双引号引起来的字符串,它包含如下3种信息: • 格式说明符:由%和格式字符组成,表示将输出的数据转换为指定的格式; • 转义字符:由\和转义字符组成,表示一些操作行为; • 其它普通字符:既原样输出的字符,一般为提示信息或便于理解输出信息的一些字符; • 2、输出列表是需要输出的一些数据,可以是变量或表达式,其项数必应该与控制参数中的格式转换控制字符的个数相同;
C程序设计基础 • 2.5 数据的输入与输出 • 格式控制字符(以%开始) 使用说明: 以上格式字符,除了X,E,G外,其它格式字符必须使用小写字母。
C程序设计基础 • 2.5 数据的输入与输出 • 格式化的输入 • 使用说明: • 1、scanf函数中“格式控制”后面跟的应当是变量的地址,而不是变量名; • 2、在“格式控制”字符串中最好只用格式说明符而不要加入其它字符。如果有,则在输入数据在其对应位置必须输入相同的字符,数据才能被正确接收; • 3、在接收数据时,系统默认的分隔符是空格、回车和Tab键。 • 4、遇到非法输入时,系统认为数据输入结束; • 5、在用“%c”格式符接收字符数据时,空格和转义字符都作为有效字符输入;