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