260 likes | 413 Views
第二章 C 语言初步. 第 2 节 C 语言基础知识. 学习目的: 了解 C 语言的有关基本概念. 如:标识符、关键字、运算符及表达式. •. 一、标识符:( identifier) 用来标识变量名、常量名、数组名等的字符序列. 如: name 、 s 、 _123. 字母、数字和下划线组成,由字母和下划线开头. 1 、不可以数字开头。如: 123abc. 2 、字母大、小写有别;如 : A 与 a 是不同的标识. 3 、不能用分隔号:如 R.Rebin. 4 、一些特殊符号不能用:如¥、 $. 二、关键字( keyword).
E N D
第二章 C语言初步 • 第2节 C语言基础知识 学习目的: 了解C语言的有关基本概念 如:标识符、关键字、运算符及表达式 •
一、标识符:(identifier) 用来标识变量名、常量名、数组名等的字符序列 如:name、 s、 _123 字母、数字和下划线组成,由字母和下划线开头 1、不可以数字开头。如:123abc 2、字母大、小写有别;如 :A与a是不同的标识 3、不能用分隔号:如R.Rebin 4、一些特殊符号不能用:如¥、$
二、关键字(keyword) 在C语言中定义的具有特定意义的单词(保留字) if 、int、 break 、long、 else、 char、 for、 while、 goto……共32个 1、只能用小写 2、严格按规定使用和拼写
三、 基本数据类型 存储器(以字节<byte>为单位存放数据) • 数据 C语言有五种基本数据类型: char a char 字符型 如: int 整型 如: int x 整型 long 长整型 如: long e,f; float x,y; /* 指定x、y为单精度实型变量 */ float 单精度实型 如: 实型 0.123、 .123、 123.0、 123.、 0.0(必须有小数点) Double 双精度实型 如: double z; /* 指定z为双精度 实型变量 */ 注意:实型常量不分float和double。
四、常量 • 程序在执行过程中始终不变的量 1、字符常量 用单引号(撇号)括起来的一个字符。 如:'a'、'x'、'D'、'?'、'$'。 每个字符常量都对应一个ACSII码值 注意,'a‘(097)和'A‘(065)是不同的字符常量。
四、常量 • 程序在执行过程中始终不变的量 1、字符常量 不可视控制字符:以“\”开头的字符序列,称为“转义序列”,“\”使其后面的字符变为另外的意义。见下表。如:回车,响铃
字符形式 功能 \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);
字符 ASCII 'A' 0x40(64) 'B' 0x41(65) 'a' 0x61(97) 'a' 0x62(98) '0' 0x30(48) '1' 0x31(49) 字符数据在内存中的存储形式及其使用方法 字符在内存中以ASCII码存放。
main() { char c1,c2; c1 = 97; c2 = 98; printf("%c %c",c1,c2); } 例2.2] 该例的输出是:
C H I N A \0 C H I N A \0 字符常量:单引号括起来的一个字符。 (2)字符串常量:双引号括起来的字符序列(0~N个字符)。: "How do you do.", "CHINA", "a", "$123.45“(照样输出) 字符串常量在内存中的存放:每一个字符均以其ASCII码存 放,且最后添加一个“空字符” 。 例: 字符串常量“CHINA”存放在内存中的情况是:(6字节存储器,不 是5字节)
char c; c = 'a'; /* 字符'a' */ c = "a"; /* 字符串"a" */ 因此,字符'a'和字符串"a"的区别是: 字符'a' :1字节(值为97) 字符串"a":2字节(值为97,0) 另外:
整型常量的类型 1、整型常量的值在-32768~+32767范围内,编译器 认为是int类型。2、整型常量的值超过上述范围,而在– 2147483648~+2147483647范围内,编译器认为 是long类型。3、在整型常量的值后面加字母L(大写L或小写l), 则告诉编译器,把该整型常量作为long类型处理 例:123L、0L。4、整型常量有三种形式。
(4)实型常量 实数(real)又称为浮点数(float),有两种表达方式: 数学:0.123、 .123、 123.0、 123.、 0.0(必须有小数点) 科学:123e3或123E3、123E-2
char c • 用标识符表示且其值可变的量 1、字符变量 用关键字char 说明的变量
int x • 用标识符表示且其值可变的量 1、整形变量 用关键字int、或long 说明的变量,一个整形变量占 2个字节,一个长整形变量占4个字节 long s
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
占内存单元 单精度实型变量 float 4字节(32位) 双精度实型变量 double 8字节(64位 • 用标识符表示且其值可变的量 2、单精度、双精度实型变量 用关键字float 、double说明的变量 float x,y; /* 指定x、y为单精度实型变量 */double z; /* 指定z为双精度实型变量 */实型常量不分float和double
算术运算符 +、-、*、/、% 关系运算符 >、<、==、>=、<=、!= 逻辑运算符 !、&&、|| *位运算符 <<、>>、~、|、∧、& 赋值运算符 = 条件运算符 ?、:! 逗号运算符 , *指针运算符 *、& 求字节数运算符 sizeof 强制类型转换运算符 (类型) *分量运算符 .(点)、→ 下标运算符 [] 其他 函数调用运算符() 六、C运算符与表达式
算术表达式和运算符的优先级与结合性算术表达式:算术表达式和运算符的优先级与结合性算术表达式: 用算术运算符和括号将运算对象(也称操作数,如常量、变量、函数等)连接起来、符合C语法规则的式子。如: a*b/c - 1.5 + 'a'
运算符的优先级:先乘除、后加减;先括号。 运算符的结合性:运算对象两侧的运算符优先级相同时,运算符的结合方向(左、右)。 左结合性:结合方向为从左至右(先左后右,简称左结合)。算术运算符为左结合。 例:a - b + c 由于算术运算符为左结合,故先执行a-b,再执行加c的运算。 右结合性:结合方向为从右至左(先右后左,简称右结合)。赋值运算符=为右结合。 例: a = b + c 由于赋值运算符=为右结合,先执行右边的b+c,再赋值给a。
强制类型转换 运算符两侧的数据类型不同时,先自动进行类型转换,再运算。 程序员可以强制进行某种转换。强制类型转换的一般形式是: (类型名)(表达式) 例、 (double)a; /* 将a转换为double类型 */ (int)(x+y); /* 将x+y的值转换为int类型 */ (float)(5 % 3);/* 将5%3的值转换为float类型 */
(int)(x+y); (int)x+y; (int)(x); (int)x;(表达式仅为一个变量时,括号可以省略) int(x;) 区别:
++i;/* 在使用i之前使i加1 */ --i; /* 在使用i之前使i减1 */ i++; /* 在使用i之后使i加1 */ i--; /* 在使用i之后使i减1 */ 自增、自减运算符 自增:使变量的值加1; 自减:使变量的值减1。
j = 3; j = ++i; /* 先使i加1,再赋给j。执行后:j=4, i=4 */ j = 3; j = i++; /* 先把i赋给j,再使i加1。执行后:j=3,i=4 */ 例:
注意: (1)++和--只能用于变量,不能用于常量和表达式。例、 5++; (a+b)++;
-i++ 负值运算符-和自增运算符优先级相同 (-i)++ -(i++) (2) ++和--的结合方向为“右结合”。例: