打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
第三章 数据类型、运算符与表达式
程序=算法+数据结构+程序设计方法+语言工具和环境
3.1 C的数据类型
3.2 常量与变量
常量-------程序运行过程中不能被改变的量。
3.2.1常量的分类
1)整型常量(如12、0、-3为整型常量)
2)实型常量(4.6、-1.23为实型常量)
3)字符常量( ’a’、’d’字符常量)
4)符号常量(具有含义清楚、见名知意、修改方便、一改全改的优点 )。
3.2.2每个变量都必须有一个名字──变量名,变量命名遵循标识符命名规则。
变量命名的规定:C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。
例:
sum,_total, month,Student_name,
lotus_1_2_3,BASIC,li_ling
M.D.John,¥123,3D64,a>b
整形数据
1.整型常量
整型常量即整常数。整常数有三种表示形式:
1)十进制;2)八进制;以0头的数是八进制数。3)十六进制   以0x开头的数是16进制数。
2.整形变量
整型数据在内存中的存放形式(二进制)
根据占用内存字节数的不同,整型变量又分为4类:
1)基本整型(类型关键字为int)。
2)短整型(类型关键字为short [int])。
3)长整型(类型关键字为long  [int])。
4)无符号整型。
整型变量的分类
注意:括号表示其中的内容是可选的。
整型变量的定义
变量说明的一般形式为: 类型说明符  变量名标识符,变量名标识符,...;
inta,b,c;            (a,b,c为整型变量)
longx,y;            (x,y为长整型变量)
unsigned int p,q; (p,q为无符号整型变量)
例3.2 整型变量的定义与使用
#include <stdio.h>
void main()
{int a,b,c,d;       /*指定a、b、c、d为整型变量*/
unsigned u;  /*指定u为无符号整型变量*/
a=12;b=-24;u=10;
c=a+u;d=b+u;
printf(″a+u=%d,b+u=%d\n″,c,d);
例3.3 整型数据的溢出
说明:数值是以补码表示的。一个整型变量只能容纳-32768~32767范围内的数,无法表示大于32767或小于-32768的数。遇此情况就发生“溢出”。
#include <stdio.h>
void  main()
{
int a,b;
a=32767;
b=a+1;
printf(“%d,%d\n”,a,b);
}
3.4 浮点型数据
3.4.1浮点型常量的表示方法
注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数:
1e3、1.8e-3、-123e-6、-.1e-3、e3、2.1e3.5、.e3、e
3.4.2规范化的指数形式:
在字母e(或E)之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字。
例如: 123.456可以表示为:
123.456e0,  12.3456e1,   1.23456e2, 0.123456e3, 0.0123456e4, 0.00123456e
其中的1.23456e3称为“规范化的指数形式”。
3.4.3 浮点型变量
1.浮点型数据在内存中的存放形式
1)一个浮点型数据一般在内存中占4个字节(32位)。与整型数据的存储方式不同,浮点型数据是按照指数形式存储的。系统把一个浮点型数据分成小数部分和指数部分,分别存放。指数部分采用规范化的指数形式。
2) 浮点型变量的分类
浮点型变量分为单精度(float型)、双精度(double型)和长双精度型(long double)三类形式。
类型
位数
数的范围
有效数字
float
32
10-37 ~ 1038
6~7 位
double型
64
10-307~10308
15~16位
long double
128
10-4931~104932
18~19位
例3.4 浮点型数据的舍入误差
说明:一个浮点型变量只能保证的有效数字是7位有效数字,后面的数字是无意义的,并不准确地表示该数。应当避免将一个很大的数和一个很小的数直接相加或相减,否则就会“丢失”小的数
#include <stdio.h>
void main()
{
float a,b;
a = 123456.789e5;
b = a + 20 ;
printf(“%f\n”,b);
}
3.5 字符型数据
3.5.1 字符常量
1.用单引号包含的一个字符是字符型常量
2只能包含一个字符
‘a’,’A’, ‘1’‘abc’、“a”
字符型数据
用一对单引号括起来的单个字符,称为字符常量,字符变量的类型关键字为char,一般占用1字节内存单元。
C语言还允许使用一种特殊形式的字符常量,就是以反斜杠“\ ”开头的转义字符。
字符变量用来存储字符常量。将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。可作为整数和字符两种形式输出,可对字符进行整数运算( ASCII码值)。
字符可以是字符集中任意字符。但数字作为字符型参与数值运算时数字的值就不是它的ASCII值。
例3.6 向字符变量赋以整数。
#include <stdio.h>
void main()
{
char c1,c2;
c1=97;
c2=98;
printf(“%c %c\n”,c1,c2);
printf(“%d %d\n”,c1,c2);
例3.7 大小写字母的转换
#include <stdio.h>
void main()
{
char c1,c2;
c1='a';
c2='b';
c1=c1-32;
c2=c2-32;
printf("%c %c\n",c1,c2);
}
3.5 字符型数据
3.5.1字符串常量
字符串常量是用一对双引号括起来的若干字符序列。
C语言规定:在存储字符串常量时,由系统在字符串的末尾自动加一个‘\0’作为字符串的结束标志。
‘a’是字符常量,而“a”是字符串常量。
不能将一个字符串赋给一个字符变量。
C中没有字符串变量,需要用字符数组存放字符串。
C规定,可以在定义变量的同时给变量赋初值。
3.5.2各类数值型数据间的混合运算
整型、单精度型、双精度型数据可以混合运算。
不同类型的数据要先转换成同一类型,然后进行运算。转换规则如图:
箭头只表示转换方向,并不是依次转换。转换过程是自动完成的。
3.6 C运算符简介
3.6.1运算符:狭义的运算符是表示各种运算的符号。
C语言运算符丰富,范围很宽,把除了控制语句和输入/输出以外的几乎所有的基本操作都作为运算符处理,所以C语言运算符可以看作是操作符。C语言丰富的运算符构成C语言丰富的表达式(是运算符就可以构成表达式)。运算符丰富、表达式丰富、灵活。
在C语言中除了提供一般高级语言的算术、关系、逻辑运算符外,还提供赋值运算符,位操作运算符、自增自减运算符等等。甚至数组下标,函数调用都作为运算符。
3.6.2运算符类别
3.6.3C中各类运算符的优先级:
3.6.4制转换
强制转换是通过类型转换运算符来实现。
一般形式:(类型说明符)表达式
功能:把表达式的结果强制转换为类型说明符所表示的类型。
(int)a      将a的结果强制转换为整型量。
(int)(x+y)   将x+y的结果强制转换为整型量。
(float)a+b  将a的内容强制转换为浮点数,再与b相加
无论隐式转换,强制转换都是临时转换,不改变数据本身的类型和值。
3.7 赋值运算符和赋值表达式
3.7.1符号" = "为赋值运算符。
赋值时,两边类型若不一致,则按以下规则转换:
1. 将实型数据(无论单,双精度)赋给整型变量时,舍弃小数.
2. 整型数据赋给实型变量,数值不变,但按实数形式存放.
3. 字符型数据赋给整型变量时:
(1)字符?无符号整型变量,则存入低8位,高8位补零。
(2)字符?带符号整型变量,则字符高位扩展。
4. 将int?long int, 进行符号扩展。
即:  符号扩展, 低16位?long 的低16位。
5.longint ? int 则高16位截断。
6.将unsigned int 型?long int高位补0。
而位数相同部分赋值
unsigned int ?int
unsigned long ?long
unsigned short ?short
原值传送,但数据大小不能超值。
如: unsigned int a=65535;
int  b;
b=a;
则越界。
7. 非unsigned 型?长度相同的unsigned型数据,原样传送(包括符号位)
一、复合赋值运算符:在" ="号之前加一个其它运算符。
例:   a+=3;        相当于 a=a+3
x=y+8;       相当于 x=x (y+8)
x%=3;        相当于x=x%3
C语言规定:凡是二目运算符均可构成复合运算符。
3.7.2赋值表达式
一般形式:<变量> <赋值运算符> <表达式>
例: x=10 为一赋值表达式
其中<表达式>又可以是一个赋值表达式。
例: x=(y=10) 相当于 y=10;x=y
由于赋值号为右结合性,于是" ( ) "可省略,
即为:x=y=10;
又:  a=5+(c=6) ?c=6, a=11
a=(b=4)+(c=6)?b=4, c=6, a=10
a=(b=10)/(c=2)?b=10,c=2, a=5
进一步,还可用复合赋值运算符作下列运算:
例:   a + = a – =a*a (设a?12)
步骤: a*a=>144.
a–=a*a=>a=a –a=>a=12 –144= –132
a + =–132=>a = a+(–132) =–264
3.8逗号运算符和逗号表达式
一般形式:
表达式1, 表达式2,表达式3, ……表达式n
其计算规则:
先计算表达式1,再计算表达式2,…..最后值为表达式n的值。
例:a=3*5, a*4
则: 先计算3*5, a<=15, a*4=60,结果为60。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
学习C++ -> 变量、常量与运算符
《C语言程序设计(第2版)》第06章回顾数据类型和表达式
C语言快速入门系列(2)
快速上手系列-C语言之基础篇(二)数据类型与运算符
数据类型、运算符与表达式
第3章顺序程序设计
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服