上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
数据类型、运算符、表达式
作者:未知 申领版权
2012年01月24日 共有 1338 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:

    第二章: 数据类型、运算符、表达式
    C语言的数据类型
    
    在第一课中,我们已经看到程序中使用的各种变量都应预先加以说明,即先说明,后使用。对变量的说明可以包括三个方面:
    ·数据类型
    ·存储类型
    ·作用域
    在本课中,我们只介绍数据类型说明。其它说明在以后各章中陆续介绍。所谓数据类型是按被说明量的性质,表示形式,占据存储空间的多少,构造特点来划分的。在C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。
    
    1.基本数据类型
    
    基本数据类型最主要的特点是,其值不可以再分解为其它类型。也就是说,基本数据类型是自我说明的。
    
    2.构造数据类型构造数据类型
    
    是根据已定义的一个或多个数据类型用构造的方法来定义的。也就是说,一个构造类型的值可以分解成若干个“成员”或“元素”。每个“成员”都是一个基本数据类型或又是一个构造类型。在C语言中,构造类型有以下几种: 
    ·数组类型
    ·结构类型
    ·联合类型
    
    3.指针类型
    
    指针是一种特殊的,同时又是具有重要作用的数据类型。其值用来表示某个量在内存储器中的地址。虽然指针变量的取值类似于整型量,但这是两个类型完全不同的量,因此不能混为一谈。4.空类型在调用函数值时,通常应向调用者返回一个函数值。这个返回的函数值是具有一定的数据类型的,应在函数定义及函数说明中给以说明,例如在例题中给出的max函数定义中,函数头为: int max(int a,int b);其中“int ”类型说明符即表示该函数的返回值为整型量。又如在例题中,使用了库函数 sin,由于系统规定其函数返回值为双精度浮点型,因此在赋值语句s=sin (x);中,s 也必须是双精度浮点型,以便与sin函数的返回值一致。所以在说明部分,把s说明为双精度浮点型。但是,也有一类函数,调用后并不需要向调用者返回函数值, 这种函数可以定义为“空类型”。其类型说明符为void。在第五章函数中还要详细介绍。在本章中,我们先介绍基本数据类型中的整型、浮点型和字符型。其余类型在以后各章中陆续介绍。
    
    对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。在程序执行过程中,其值不发生改变的量称为常量,取值可变的量称为变量。它们可与数据类型结合起来分类。例如,可分为整型常量、整型变量、浮点常量、浮点变量、字符常量、字符变量、枚举常量、枚举变量。在程序中,常量是可以不经说明而直接引用的,而变量则必须先说明后使用。
    整型量
    
    整型量包括整型常量、整型变量。整型常量就是整常数。在C语言中,使用的整常数有八进制、十六进制和十进制三种。
    
    整型常量
    
    1.八进制整常数八进制整常数必须以0开头,即以0作为八进制数的前缀。数码取值为0~7。八进制数通常是无符号数。
    以下各数是合法的八进制数: 
    015(十进制为13)  0101(十进制为65)  0177777(十进制为65535)
    以下各数不是合法的八进制数: 
    256(无前缀0) 03A2(包含了非八进制数码)  -0127(出现了负号)
    
    2.十六进制整常数
    十六进制整常数的前缀为0X或0x。其数码取值为0~9,A~F或a~f。
    以下各数是合法的十六进制整常数:
    0X2A(十进制为42)    0XA0 (十进制为160)    0XFFFF (十进制为65535)
    以下各数不是合法的十六进制整常数: 
    5A (无前缀0X)    0X3H (含有非十六进制数码)
    
    3.十进制整常数
    十进制整常数没有前缀。其数码为0~9。
    以下各数是合法的十进制整常数:
    237 -568 65535 1627
    以下各数不是合法的十进制整常数:
    023 (不能有前导0)  23D (含有非十进制数码)
    
    在程序中是根据前缀来区分各种进制数的。因此在书写常数时不要把前缀弄错造成结果不正确。4.整型常数的后缀在16位字长的机器上,基本整型的长度也为16位,因此表示的数的范围也是有限定的。十进制无符号整常数的范围为0~65535,有符号数为-32768~ 32767。八进制无符号数的表示范围为0~0177777。十六进制无符号数的表示范围为0X0~0XFFFF或0x0~0xFFFF。如果使用的数超过了上述范围,就必须用长整型数来表示。长整型数是用后缀“L”或“l”来表示的。例如:
    十进制长整常数 158L (十进制为158) 358000L (十进制为-358000)
    八进制长整常数 012L (十进制为10) 077L (十进制为63)  0200000L (十进制为65536)
    十六进制长整常数 0X15L (十进制为21) 0XA5L (十进制为165)  0X10000L (十进制为65536)
    
    长整数158L和基本整常数158 在数值上并无区别。但对158L,因为是长整型量,C编译系统将为它分配4个字节存储空间。而对158,因为是基本整型,只分配2 个字节的存储空间。因此在运算和输出格式上要予以注意,避免出错。无符号数也可用后缀表示,整型常数的无符号数的后缀为“U”或“u”。例如: 358u,0x38Au,235Lu 均为无符号数。前缀,后缀可同时使用以表示各种类型的数。如0XA5Lu表示十六进制无符号长整数A5,其十进制为165。
    
    整型变量
    
    整型变量可分为以下几类:
    1.基本型
    类型说明符为int,在内存中占2个字节,其取值为基本整常数。
    2.短整量
    类型说明符为short int或short'C110F1。所占字节和取值范围均与基本型相同。
    3.长整型
    类型说明符为long int或long ,在内存中占4个字节,其取值为长整常数。
    4.无符号型
    类型说明符为unsigned。
    无符号型又可与上述三种类型匹配而构成:
    (1)无符号基本型 类型说明符为unsigned int或unsigned。
    (2)无符号短整型 类型说明符为unsigned short
    (3)无符号长整型 类型说明符为unsigned long 
    各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。但由于省去了符号位,故不能表示负数。 下表列出了Turbo C中各类整型量所分配的内存字节数及数的表示范围。
    类型说明符        数的范围         分配字节数
    int             -32768~32767         ■■ 
    short int       -32768~32767         ■■
    signed int      -32768~32767         ■■
    unsigned int    0~65535              ■■
    long int   -2147483648~2147483647    ■■■■
    unsigned long   0~4294967295         ■■■■
    整型变量的说明
    变量说明的一般形式为: 类型说明符 变量名标识符,变量名标识符,...; 例如:
    int a,b,c; (a,b,c为整型变量)
    long x,y; (x,y为长整型变量)
    unsigned p,q; (p,q为无符号整型变量)
    在书写变量说明时,应注意以下几点:
    1.允许在一个类型说明符后,说明多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。
    2.最后一个变量名之后必须以“;”号结尾。
    3.变量说明必须放在变量使用之前。一般放在函数体的开头部分。
    [Practice] //1int a,b;
    short int c;
    short d=100;
    a=d-20;
    b=a d;
    c=a b d;
    d=d-a c-b;'Vtable
    a,2,0
    b,2,0
    c,2,0
    d,2,100
    of Vtable
    'Vupdate
    1,0;2,0
    3,0
    4,100
    1,80
    2,180
    3,360
    4,200
    of Vupdate
    of Practice
    [Practice] //2int a=5;
    int b=9;
    long int c;
    long d;
    c=a b-7;
    d=a*b*c;
    c=d*d*d;
    a=c-d;'Vtable
    a,2,5
    b,2,9
    c,4,0
    d,4,0
    of Vtable
    'Vupdate
    1,5
    2,9
    3,0
    4,0
    3,7
    4,315
    3,31255875
    1,-5112
    of Vupdate
    of Practice
    [Practice] //3int a=6,b=19;
    unsigned int c;
    int d;
    c=a-b 7;
    d=b*c;
    a=b c d;
    b=-a;'Vtable
    a,2,6
    b,2,19
    c,2,0
    d,2,0
    of Vtable
    'Vupdate
    1,6;2,19
    3,0
    4,0
    3,65530
    4,-114
    1,-101
    2,101
    of Vupdate
    of Practice
    void main(){
    long x,y;
    int a,b,c,d;
    x=5;
    y=6;
    a=7;
    b=8;
    c=x a;
    d=y b;
    printf("c=x a=%d,d=y b=%d\n",c,d);
    }
    将main说明为返回void,即不返回任何类型的值
    x,y被定义为long型
    a,b,c,d被定义为int型
    5->x
    6->y
    7->a
    8->b
    x a->c
    y b->d
    显示程序运行结果 of long x,y;
    int a,b,c,d;
    c=x a;
    d=y b;
    从程序中可以看到:x, y是长整型变量,a, b是基本整型变量。它们之间允许进行运算,运算结果为长整型。但c,d被定义为基本整型,因此最后结果为基本整型。本例说明,不同类型的量可以参与运算并相互赋值。其中的类型转换是由编译系统自动完成的。有关类型转换的规则将在以后介绍。
    

 

相关新闻

产量数据处理的四个步骤
测量数据计算方法二
Excel图表创建步骤
看懂了这些就等于MBA商学院毕业
珠穆朗玛峰(三)
实验基本操作中的数据
有机反应的主要类型
有关烃的计算类型
人口的变化(习题)
分析运算符

您可能对这些感兴趣  

第7讲 综合分析BIM在运用与推广中的障碍问题
考核学生质量的困难
日本福岛核电站事故初步分析
论科技异化与科技人化
中国科技计划项目管理现状与对策
财政科技资金的审计重点和内容
软科学研究机构在政府决策中的功效、困境及对策研究
打造超级DOS系统(下)
DOS命令基础应用(6)
打造超级DOS系统(上)

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》