admin 管理员组文章数量: 887021
2023年12月16日发(作者:sql数据库文件mdf损坏的恢复)
C语言数据表现形式
编写 C 语言程:(1)要有正确的解题思路,即学会设计算法。(2)掌握 C 语言的语法,知道怎样使用 C 语言所提供的功能编写出一个完整的正确的程序。(3)在写算法和编写程序时,要采用结构化程序设计方法,编写出结构化的程序。编写程序时要掌握c语言的语法。
数据的表现形式及其运算
C 语言的一些语法规定,一般不要硬背死记,因为编程时可以带资料或可以上网查,大致知道有这些语法规定就可以了,把精力用在编写算法上。
1常量和变量
数据有两种表现形式:常量和变量。
1.常量:在程序运行过程中,其值不能被改变的量称为常量。数值常量就是数学中的常数。
常用的常量有以下几类:
(1)整型常量。如12345,0,-345等都是整型常量。
(2)实型常量。有两种表示形式:
①十进制小数形式,由数字和小数点组成。如123.456,0.345,-56.79,0.0,12.0等。
②指数形式,如12.34e3(代表12.34×10^3),-346.87e-25(代表-346.87×10^(-25))。由于在计算机输入或输出时无法表示上角或下角,故规定以字母 e 或
E 代表以10为底的指数。 e 或 E 之前必须有数字,且 e 或 E 后面必须为整数。不能写成如:e4,12e2.5。
(3)字符常量。有两种形式的字符常量
①普通字符,用单撇号括起来的一个字符,如:' a ','3','?',不能写成' ab ',单撇号只是界限符,字符常量只能是一个字符,不包括单撇号。' a '和' A ’是不同的字符常量。
字符常量存储在计算机存储单元中时,并不是存储字符(如 a , Z ,#等)本身,而是以其代码(一般采用 ASCii代码)存储的,例如字符‘ a '的 ASCii代码是
97,在存储单元中存放的是97(以二进制形式存放),因为计算机只认识0和1,c语言编译器就是桥梁。
在ASCII码编码方案中,一个英文字符占用一个字节,一个汉字字符占用两个字节的空间;一个字符等于一个字节 。一个英文字母(不分大小写)占一个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值-128,最大值127。如一个ASCII码就是一个字节。
转义字符:
以字符“"开头的字符序列。例如:在 printf 函数中的’n'代表一个“换行”符。't'代表将输出的位置跳到下ー个 Tab 位置(制表位置),一个 Tab 位置为列。这是一种在屏幕上无法显示的“控制字符”,在程序中也无法用一个一般形式的字符表示,只能采用这样的特殊形式来表示。
转义字符
转义字符/字符值/输出结果
'/一个单撇号/输出单撇号字符
"/一个双撇号/输出双撇号字符
?/一个问号(?)/输出问号字符?
/一个反斜线/输出反斜线字符
\a /警告( alert )/产生声音或视觉信号
b /退格( backspace )/将光标当前位置后退一个字符
f /换页( form feed )将光标当前位置移到下一页的开头
n /换行 /将光标当前位置移到下一行的开头
r /回车( carriage return )/将光标当前位置移到本行的开头
t /水平制表符将光标当前位置移到下一个 Tab 位置
v /垂直制表符/将光标当前位置移到下一个垂直制表对齐点
o 、oo或\ooo其中o代表一个八进制数字/与该八进制数字 ASCII 字符/与该八进制码对应的字符
xh [h…]其中h代表一个十六进制数字/与该十六进制码对应的ASCIl 字符/与该十六进制码对应的字符
转义字符,意思是将“”后面的字符转换成另外的意义。如" n 中的" n "不代表子母 n 而作为"换行”符。
以八进制教表示的字符。例如\101代表八进制制数101的ASCii码对应字符'A '(八进制数101相当于十进制数65.从附录表可以看到ASCii码(十进制数)为65的字符是大写字母'A'。
101转化8^2+1=65
65/8=8余1,倒排进位,1为八进制个位
上式的商8/8=1余0,0为八进制比上面高的一位,上式的商1/8=0余1,1为八进制比上面高的一位,65的八进位数为101。上面的方法为除基取余法,倒排余数。
一个以十六进制数表示的 ASCIl字符,如'x41’代表十六进制数41的 ASCIl 字符,4*16+1=65,也是' A '(十六进制数41相当于十进制数65)。
用转义字符表中的方法可以表示任何可显示的字母字符、数字字符、专用字符、图形学符和控制子符。如’033’或'\x1B'代表 ASCii代码为27的字符,3x8+3=27,1x16+11=27,即 ESC 控制符。
十六进制英文名称:Hex number system,是计算机中数据的一种表示方法。同我们日常中的十进制表示法不一样。它由0-9,A-F组成。与10进制的对应关系是:0-9对应0-9,A-F对应10-15,N进制的数可以用0---(N-1)的数表示,超过9的用字母A-F。B在16进制中序数为11,1~9对应1~9,A~F对应10~15。
(4)字符串常量。如" boy ,"123"等,用双撇号把若干个字符括起来,字符串常量是双撇号中的全部字符(但不包括双撇号本身)。注意不能错写成 'CHINA' , 'boy ','123'。单撇号内只能包含一个字符,双撇号内可以包含一个字符串。从其字面形式上即可识别的常量称为“字面常量”或“直接常量”。字面常量字符来是没有名字的不变量。
(5)符号常量。用# define 指令,指定用一个符号名称代表一个常量。
如# define PI 3.1416 //注意行末没有分号
经过以上的指定后,从此行开始所有的 PI 都代表3.1416。在对程序进行编译前,预处理器先对 PI 进行处理,把所有 PI 全部置换为3.1416。这种用一个符号名代表一个常量的,称为符号常量。在预编译后,符号常量已全部变成字面常量(3.1416)。
注意:要区分符号常量和变量,不要把符号常量误认为变量。符号常量不占内存只是一个临时符号,代表一个值,在预编译后这个符号就不存在了,故不能对符号常量赋值。为与变量名相区别,习惯上符号常量用大写表示,如P1, PRI
2.变量
变量代表一个有名字的、具有特定属性的一个存储单元。它用来存放数据,也就是存放变量的值。在程序运行期间,变量的值是可以改变的。
变量必须先定义,后使用。在定义时指定该变量的名字和类型。如: int a =3;
变量值一个变量应该有一个名字,以便被引用。
请注意区分变量名(地址名)和变量值存储单元(地址单元)这两个不同的概念,如: a 是变量名,3是变量 a 的值,即存放在变量 a 的内存单元中的数据。变量名实际上是以一个名字代表的一个存储地址。在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址。从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单中读取数据。
3.常变量
常变量是在定义变量时,如果加上关键字const,则变量的值在程序运行期间不能改变,这种变量称为常变量。如:const int a = 3;
在定义常变量时必须同时对它初始化,此后它的值不能再改变,常变量不能出现在赋值符号的左边。
区别:常变量与符号常量的区别:符号常量不占用内存空间,在预编译时就全部由符号常量的值替换了,而常变量占用内存空间,只是此变量在存在期间不能重新赋值。
常变量与常量的异同是,常变量具有变量的基本属性:有类型占存储单元,只是不允许改变其值。可以说,常变量是有名字的不变量,而常量是没有名字的不变量。有名字就便于在程序中被引用。
常变量与符号常量不同。如:
# define Pi 3.1415926 //定义符号常量
const float pi =3.1415926; //定义常变量
符号常量 P 和常变量 pi 都代表3.1415926在程序中都能使用。但二者性质不同:定义符号常量用# define 指令,它是预编译指令,它只是用符号常量代表一个字符串,在预编译时仅进行字符替换,在预编译后,符号常量就不存在了(全置换成3.1415926),对符号常量的名字是不分配存储单元的。而常变量要占用存
储单元,有变量值,只是该值不改变而已、从使用的角度看,常变量具有符号常量的优点,而且使用更方便。有了常变量以后,不必多用符号常量。
在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。
符号常量在使用之前必须先定义,其一般形式为:#define 标识符 常量
其中#define 也是一条预处理命令(预处理命令都以"#"开头),称为宏定义命令,其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。符号常量虽然有名字,但它不是变量。它的值在其作用域内是不能改变的,也不能被赋值。使用符号常量好处:1、含义清楚。2、在需要改变一个常量时能做到“一改全改”。
4.标识符
用来对变量、符号常量名、函数、数组、类型等命名的有效字符序列统称为标识符,标识符就是一个对象的名字。变量名a,符号常量名 PI , PRICE ,函数名 printf
等都是标识符。
C 语言规定标识符只能由字母、数字和下画线3种字符组成,且第1个字符必须为字母或下画线。下面列出的是合法的标识符,可以作为变量名:
sum,_ total, Class,Student _ name , lotus _1_2,BASIC,li _ling。
下面是不合法的标识符和变量名:
M . D . John ,¥123,#33,3D64, a > b,大写字母和小写宇母是两个不同的字符。如: sum 和 SUM 是两个不同的变量名,一般而言,变量名用小写字母表示。
数据类型
在定义变量时需要指定变量的类型。常量也是区分类型的。在计算机中,数据是存放在存储单元中,它受字节数所限长度和存储形式所限类型。存储单元是由有限的字节构成的,每一个存储单元存放数据的范围是有限的,不可能存放“无穷大”的数,也不能存放循环小数。如用 C 程序计算和输出1/3;printf (“%
f” ,1.0/3.0);得到的结果是 0.333333,只能得到6位小数,而不是无穷位的小数。所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储形式。不同的类型分配不同的长度和存储形式。
版权声明:本文标题:C语言数据表现形式 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1702707129h427556.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论