第二章 C 语言初步

26
第第第 C 第第第第 第2第 C 第第第第第第 学学学学学学 C 学学学学学学学学学 学学学学 学学学学 学学学学学学学 :、、

description

第二章 C 语言初步. 第 2 节 C 语言基础知识. 学习目的:  了解 C 语言的有关基本概念. 如:标识符、关键字、运算符及表达式. •. 一、标识符:( identifier) 用来标识变量名、常量名、数组名等的字符序列. 如: name 、 s 、 _123. 字母、数字和下划线组成,由字母和下划线开头. 1 、不可以数字开头。如: 123abc. 2 、字母大、小写有别;如 : A 与 a 是不同的标识. 3 、不能用分隔号:如 R.Rebin. 4 、一些特殊符号不能用:如¥、 $. 二、关键字( keyword). - PowerPoint PPT Presentation

Transcript of 第二章 C 语言初步

Page 1: 第二章     C 语言初步

第二章 C 语言初步

第 2 节 C 语言基础知识

学习目的: 了解 C 语言的有关基本概念

如:标识符、关键字、运算符及表达式

Page 2: 第二章     C 语言初步

一、标识符:( identifier) 用来标识变量名、常量名、数组名等的字符序列

如: name 、 s 、 _123字母、数字和下划线组成,由字母和下划线开头

1 、不可以数字开头。如: 123abc2 、字母大、小写有别;如 : A 与 a 是不同的标识3 、不能用分隔号:如 R.Rebin

4 、一些特殊符号不能用:如¥、 $

Page 3: 第二章     C 语言初步

二、关键字( keyword)

在 C 语言中定义的具有特定意义的单词 ( 保留字)

if 、 int 、 break 、 long 、 else 、 char 、 for 、

while 、 goto…… 共 32 个1 、只能用小写

2 、严格按规定使用和拼写

Page 4: 第二章     C 语言初步

三、 基本数据类型数据

C 语言有五种基本数据类型:

存储器(以字节 <byte> 为单位存放数据 )

char 字符型 如: char a

int 整型 如: int x long 长整型 如:long e,f;

float 单精度实型 如: float x,y; /* 指定 x 、 y 为单精度实型变量 */

0.123 、 .123 、 123.0 、 123. 、 0.0 (必须有小数点)Double 双精度实型 如: double z; /* 指定 z 为双精

度 实型变量 */注意:实型常量不分 float 和 double 。

整型

实型

Page 5: 第二章     C 语言初步

四、常量程序在执行过程中始终不变的量

1 、字符常量

用单引号 ( 撇号 ) 括起来的一个字符。

如: 'a' 、 'x' 、 'D' 、 '?' 、 '$' 。

每个字符常量都对应一个 ACSII 码值

注意, 'a‘ ( 097 )和 'A‘ ( 065 )是不同的字符常量。

Page 6: 第二章     C 语言初步

四、常量程序在执行过程中始终不变的量

1 、字符常量

不可视控制字符:以“ \” 开头的字符序列,称为“转义序列”,“ \” 使其后面的字符变为另外的意义。见下表。如:回车,响铃

Page 7: 第二章     C 语言初步

字符形式 功能\n 换行符\t

横向跳格:跳到下一个输出区(每一输出区为 8 个字符位置)

\v 竖向跳格\b 退格\r 回车(回到本行起始字符位置)\f 走纸换页\\ 反斜杠字符 \\' 单引号 ( 撇号 )'

\ddd 1~3 位八进制数所代表的字符。如 \101 表示 'A'\xhh 1~2 位十六进制数所代表的字符。如 \x40 表示 'A'

转义序列主要用来控制打印机和屏幕输出。 例: printf("\n sum is %d\n\n",sum);

Page 8: 第二章     C 语言初步

字符数据在内存中的存储形式及其使用方法   字符在内存中以 ASCII 码存放。

字符 ASCII

'A' 0x40(64)

'B' 0x41(65)

'a' 0x61(97)

'a' 0x62(98)

'0' 0x30(48)

'1' 0x31(49)

Page 9: 第二章     C 语言初步

例 2.2]main()

{ char c1,c2;

c1 = 97; c2 = 98;

printf("%c %c",c1,c2);

}

该例的输出是:

Page 10: 第二章     C 语言初步

字符常量:单引号括起来的一个字符。

( 2 )字符串常量:双引号括起来的字符序列( 0~N 个字符)。:

"How do you do.", "CHINA", "a", "$123.45“ (照样输出)

字符串常量在内存中的存放:每一个字符均以其 ASCII 码存

放,且最后添加一个“空字符” 。

例:

字符串常量“ CHINA” 存放在内存中的情况是: (6 字节存储器,不

是 5 字节 )

CHINA\0

C H I N A \0

Page 11: 第二章     C 语言初步

因此,字符 'a' 和字符串 "a" 的区别是:字符 'a' : 1 字节(值为 97 )字符串 "a" : 2 字节(值为 97,0 )另外:

char c;

c = 'a'; /* 字符 'a' */

c = "a"; /* 字符串 "a" */

Page 12: 第二章     C 语言初步

整型常量的类型1 、整型常量的值在 -32768~+32767范围内,编译器 认为是 int 类型。2 、整型常量的值超过上述范围,而在– 2147483648~+2147483647范围内,编译器认为 是 long 类型。3 、在整型常量的值后面加字母 L( 大写 L 或小写 l), 则告诉编译器,把该整型常量作为 long 类型处理 例: 123L、 0L。4 、整型常量有三种形式。

Page 13: 第二章     C 语言初步

( 4 )实型常量实数( real )又称为浮点数( float ) ,有两种表达方式: 数学: 0.123 、 .123 、 123.0 、 123. 、 0.0 (必须有小数点) 科学: 123e3或 123E3 、 123E-2

Page 14: 第二章     C 语言初步

char c

用标识符表示且其值可变的量

1 、字符变量

用关键字 char 说明的变量

Page 15: 第二章     C 语言初步

int x

用标识符表示且其值可变的量

1 、整形变量

用关键字 int 、或 long 说明的变量 , 一个整形变量占

2 个字节,一个长整形变量占 4 个字节

long s

Page 16: 第二章     C 语言初步

main(){int a,b,c,d; /* 指定变量 a 、 b 、 c 、 d 为整型 */ a = 12; b = -24; u = 10; c = a + u; d = b+u; printf("a+u = %d, b+u = %d\n", c,d);} 程序运行显示: a+u = 22, b+u = -14

Page 17: 第二章     C 语言初步

用标识符表示且其值可变的量

2 、单精度、双精度实型变量

用关键字 float 、 double说明的变量占内存单元

单精度实型变量 float 4 字节 (32 位 )双精度实型变量 double 8 字节( 64 位

float x,y; /* 指定 x 、 y 为单精度实型变量 */double z; /* 指定 z为双精度实型变量 */ 实型常量不分 float 和 double

Page 18: 第二章     C 语言初步

六、 C 运算符与表达式

算术运算符 +、 -、 * 、 / 、 %关系运算符 > 、 < 、 ==、 >=、 <=、 !=逻辑运算符 !、 &&、 ||* 位运算符 << 、 >> 、 ~ 、 |、∧、 &赋值运算符 =条件运算符 ? 、:!逗号运算符 ,* 指针运算符 * 、 &求字节数运算符 sizeof强制类型转换运算符 (类型)* 分量运算符 .( 点 ) 、→下标运算符 []其他 函数调用运算符 ()

Page 19: 第二章     C 语言初步

算术表达式和运算符的优先级与结合性算术表达式: 用算术运算符和括号将运算对象(也称操作数,如常量、变量、函数等)连接起来、符合 C 语法规则的式子。如: a*b/c - 1.5 + 'a'

Page 20: 第二章     C 语言初步

运算符的优先级:先乘除、后加减;先括号。运算符的结合性:运算对象两侧的运算符优先级相同时,运算符的结合方向(左、右)。左结合性:结合方向为从左至右(先左后右,简称左结合)。算术运算符为左结合。例: a - b + c

由于算术运算符为左结合,故先执行 a-b ,再执行加 c 的运算。右结合性:结合方向为从右至左(先右后左,简称右结合)。赋值运算符 =为右结合。例: a = b + c由于赋值运算符 =为右结合,先执行右边的 b+c ,再赋值给 a。

Page 21: 第二章     C 语言初步

强制类型转换运算符两侧的数据类型不同时,先自动进行类型转换,再运算。程序员可以强制进行某种转换。强制类型转换的一般形式是:(类型名)(表达式)例、 ( double ) a; /* 将 a 转换为 double 类型 */( int )( x+y ) ; /* 将 x+y 的值转换为 int 类型 */( float )( 5 % 3 ) ;/* 将 5%3 的值转换为 float 类型 */

Page 22: 第二章     C 语言初步

区别:

( int )( x+y ) ; ( int ) x+y;

(int)(x);(int)x; (表达式仅为一个变量时,括号可以省略)int(x;)

Page 23: 第二章     C 语言初步

自增、自减运算符自增:使变量的值加 1 ; 自减:使变量的值减 1。

++i ; /* 在使用 i之前使 i 加 1 */--i; /* 在使用 i之前使 i减 1 */

i++; /* 在使用 i之后使 i 加 1 */i--; /* 在使用 i之后使 i减 1 */

Page 24: 第二章     C 语言初步

例:

j = 3;j = ++i; /* 先使 i 加 1 ,再赋给 j。执行后: j=4, i=4 */

j = 3;j = i++; /* 先把 i赋给 j,再使 i 加 1 。执行后 :j=3,i=4 */

Page 25: 第二章     C 语言初步

注意:( 1 ) ++和 --只能用于变量,不能用于常量和表达式。例、5++; (a+b)++;

Page 26: 第二章     C 语言初步

( 2 ) ++和 --的结合方向为“右结合”。例:

-i++负值运算符 -和自增运算符优先级相同

(-i)++

-(i++)