C语言程序设计课件:数据类型_第1页
C语言程序设计课件:数据类型_第2页
C语言程序设计课件:数据类型_第3页
C语言程序设计课件:数据类型_第4页
C语言程序设计课件:数据类型_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计

数据类型2.1数据类型简介2.1.1数据类型分类2.1.2标识符 2.2常量2.2.1数值常量2.2.2字符常量 2.2.3符号常量 2.3变量 2.3.1整型变量 2.3.2实型变量 2.3.3字符变量 2.3.4变量赋初值

2.1数据类型简介

2.1.1数据类型分类

2.1.2标识符 标识符由字母、数字和下划线组成,其中第一个字符必须是字母或下划线。

例如,_00、print、FOR均是合法的标识符,而&a、-123、ab均是不合法的标识符。英文字母的大小写是有区别的,命名最好做到“见名知义”,增加程序的可读性标识符的有效长度为1~255个字符。2.2常量2.2.1数值常量2.实型常量实型常量即实数,又称为浮点数。C语言中,实数只能用十进制形式表示,实数的表示方法有两种:小数形式和指数形式。小数形式:如12.345,3.,-.123。指数形式:由尾数部分、字母E或e和指数部分组成,格式为:±尾数E指数。注意:(1)以小数形式表示实数时,必须有小数点,并且小数点的前、后至少一边要有数字。(2)以指数形式表示实数时,字母E(或e)的前后必须有数字,并且指数部分只能是整数。如12.-E3、1.5E、E6都是不正确的实数。2.实型常量2.2.2字符常量1.字符常量字符常量:是用单引号括起来的一个字符。字符可以是字符集中任意字符,每个字符在内存中占一个字节,以ASCII码形式存储在内存中。

字符常量的取值是该字符所对应的ASCII码值,可以用整型数据描述。将一个字符常量赋给一个变量时,就是把该字符常量的ASCII码值赋给该变量。字符常量可以参加各种运算。i=‘I’;/*等价于i=73*/t=‘$’+5;/*等价于t=36+5*/s=‘%’+‘X’;/*等价于s=37+88*/2.字符串常量字符串常量简称字符串,是用一对双引号“”括起来的零个或多个字符序列。例如,“a”、“ASDFG”、“CHINA”、“1234”、”Class-1”等都是字符串常量。字符串的长度等于该字符串中所包含的有效字符的个数,在字符串中如遇到‘\0’则认为该字符串结束。系统自动在每个字符串的尾部加上'\0'作为字符串的结束标志。

例如字符串“Hello”在内存存储如下:

n个字符组成的字符串,在内存中要占用n+1个字节空间。可以使用sizeof运算符来计算字符串占用的内存空间大小。字符串的长度等于该字符串中所包含的有效字符的个数。在字符串中如遇到'\0'则认为该字符串结束。可以使用strlen()函数计算字符串的长度。字符常量和字符串常量在内存中的存储情况是不同的。如‘6’在内存中占1个字节,存储的是其ASCII码。“6”在内存中占2个字节,一个字节存储'6',一个字节存储'\0'。3.转义字符

转义字符又称反斜杠字符常量,转义字符具有特定的含义,不同于字符原有的意义。

其形式为反斜杠“\”后跟一个字符或一些数字。例如,\n就是一个转义字符,它不代表字母n,

而是作为换行符,其意义是回车换行。

常见的转义字符转义字符转义功能ASCII码值\0空字符0\b退格(Backspace)8\t水平制表符(即横向跳格)9\n回车换行(Enter)10\v竖向跳格11\f换页12\r回车13\"双引号(")34\'单引号(')39\?问号(?)63\\反斜线字符(\)92\ddd1~3位八进制所代表的字符\xhh1~2位十六进制所代表的字符【例】转义字符使用示例#include<stdio.h>intmain(){ charb,c,d,e; b='\43'; c='\103'; d='\x2a'; e='\x41'; printf("b=%c,c=%c,d=%c,e=%c\n",b,c,d,e); printf("\"good\40morning!\b\"!\n"); printf("\123456"); return0;}运行结果b=#,c=C,d=*,e=A"goodmorning"!S456注意:转义字符形式上由多个字符组成,但它是一个字符常量,只代表一个字符。转义字符的使用方法与一般字符常量的用法相同。2.2.3符号常量 用符号来代替常量,代替常量的符号称为符号常量。通常用大写英文字母表示符号常量。其格式为:#define符号常量常量

例如:

#defineN9#defineEOF-1#defineNULL0其中,#define是编译系统预处理命令;N、EOF(结束标志)、NULL(空)是符号常量,分别代替常量9,-1和0。

每个符号常量的定义式只能定义一个符号常量,并且占据一个书写行。例2-3求圆的面积。#include<stdio.h>#definePI3.14159voidmain(){floats,r;r=4;s=PI*r*r;printf("s=%f\n",s);}由宏定义命令定义PI为3.14159,r定义为实数4,s为PI*r*r。本程序在主函数之前由宏定义命令定义PI为3.14159,在程序中即以该值代替PI。s=PI*r*r等效于s=3.14159*r*r。应该注意的是,符号常量不是变量,它所代表的值在整个作用域内不能再改变。也就是说,在程序中,不能再用赋值语句对它重新赋值。2.3变量

在图2-2中,p是变量名,5为变量p的值,即p=5,方框代表存储单元。变量名实际上是一个符号地址,在对程序编译链接时系统自动给每个变量名分配一个内存地址。2.3.1整型变量 1.整型变量的分类数据在计算机内存中是以二进制形式存放的。为充分利用内存空间,提高运行速度,根据数据的取值范围可将整型变量划分为3类。(1) 基本整型:用int表示。(2) 短整型:用shortint或short表示。(3) 长整型:用longint或long表示。2.无符号整型变量和有符号整型变量无符号型变量只能存放不带符号的整数,如123,45,1068等,而不能存放负数,如,-123,-45,-1068等。2.3.1整型变量 整型变量定义

一般格式为:

数据类型关键字变量1,变量2,…..,变量n;

其中,“数据类型关键字”必须是系统规定的关键字;

“变量1,变量2,…,变量n”可以是用户命名的标识符。具有相同数据类型的变量可以在一起说明,它们之间用逗号分隔。

凡未被事先说明的变量,不能作为变量名。

在定义变量时,可以根据数据的大小选取合适的类型。特别是将整型常量赋给整型变量时,类型要匹配。例2-4整型变量的定义与应用#include<stdio.h>main(){inti,j,s1,s2;unsignedinta;i=28;j=-45;a=10;s1=i+a;s2=j+a;printf(“i+a=%d,j+a=%d\n”,s1,s2);}

运行结果:i+a=38,j+a=-35分析:在printf()函数中,“%d”表示输出整型数据,而“\n”表示换行输出。另外,双引号括起来的其他字符按原样输出。2.3.2实型变量

表2-4中,有效位是指数据在几位之内为有效数字。如:实型数据123456.789只能保证前7位数据的准确性,而后面的两位小数将出现随机数。双精度型与长双精度型的精度都比单精度高。实型变量分为3类:单精度型、双精度型和长双精度型。2.3.2实型变量

例2-6实型数据输入、输出举例。#include<stdio.h>voidmain(){floata; /*定义a为实型*/doubleb;/*定义b为双精度实型*/a=66666.66666;b=55555.55555555555555;printf("%f\n%f\n",a,b);}2.3.3字符变量

字符变量用来存放字符常量,且每个字符变量只能存放一个字符常量,在内存中占用一个字节。字符变量的定义一般格式为:char变量1,变量2,…,变量n;例如:charc1,c2;其中,c1和c2为字符型变量,分别存放一个字符常量,字符变量是把该字符ASCII码值存放在存储单元中。2.3.4变量赋初值

为了使程序更加简洁、直观,C语言允许在说明一个变量的同时给变量赋一个初值,常常称之为初始化。其一般形式如下:

数据类型关键字变量名=表达式;其中,“=”是赋值运算符,“表达式”常常是一个常量。例如:ints=6;/*定义s为整型变量,初值为6*/

floati=2.1415;/*定义i为实型变量,初值为2.1415*/charc=‘a’;/*

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论