ios学习路线—C语言(基本数据类型和基本运算)

C语言的数据类型
数据类型的概念:数据类型是一类数据的抽象表示,这类数据具有相同的形式,遵从相同的运算规则。

数据类型的分类:C语言提供了丰富的数据类型。
1.基本数据类型
标准类型:整型,实型(单精度型,双精度型),字符型。
用户定义类型:枚举型。
2.指针类型
3.空类型
4.构造类型:数据类型,结构体类型,共用体类型

数据类型的长度:在计算中,由于软硬件的各种原因,数据类型必须有一个长度的限制。这个长度是指数据存储在计算机中需要占用多少个字节数。不同的类型的数据在内存中占用的字节数是不同的。
溢出处理:不同的数据类型规定了不同的机内表示长度,也决定了对应数据量的变化范围。当某一数据超出该数据类型所规定的范围时,计算机会拒绝接受,而将之转换成范围内的另外某个数,这种情况称之为溢出处理。

常量与变量
常量和变量是在计算机中数据类型的具体表现形式,它们不再是抽象的概念而是实在的数据,这些数据符合对数据类型的规定(形式和运算规则两方面)。常量和变量之间的区别在于程序执行过程中的变化情况。常量是一成不变的,而变量则可以不断改变。

常量:在程序运行过程中某值不能被改变的量值。
例如:1,2,3.1,-4.0,’a’,’b’,”abc”,”AB\n”。
C语言规定的常量根据数据类型分为四种:
整型常量,实型常量,字符型常量,字符串常量
在程序中使用常量时,一般不需要具体指出它属于哪一种类型,C语言编译系统会自动根据常量的数据大小和直观形式来确定它的数据类型。

符号常量:当某个常量引用起来比较复杂而由要经常使用时,可以将该常量定义为符号常量。

整型常量:就是一个整数。在计算机中一般占用2个字节。
分三种形式:十进制整数(一般表示法)
八进制整数(以0开头的数)
十六进制整数(以0x开头的数)
注意:
(1)整常数在不加特别说明时为正值。如果是负值,则”-“必须放在常熟的前面。
(2)长整型常量和普通的整型常量基本相似,在一个常数的后面加一个字母L或l,则被认为是长整型。长整型常量的长度为四个字节,因此长整型常量的表示范围要远远大于整形常量。

实型常量:就是通常带有小数点的实数,在计算机中占用4个字节。
实型常量有两种表示方式:
十进制数形式:100.5,-1.0
指数形式:123.0E-1,1.23E3
标准的指数形式是:小数点的左侧只有一位数字。
例如:1.23E-2,0.276E3

注意:
(1).书写实型常量时有一些省略形式,实型常量中的小数部分或整数部分可以省略,但不能同时省略;小数点不能省略.;指数形式中的’E’或’e’不能省略;’+’可以省略;’-‘不能省略。
(2).所有的实型常量的有效位数为7位,所以一个实型常量中超过7个有效位的部分是无效的。
(3).字母E或e之前必须有数字,而且字母E或e之后的指数必须位整数。

字符常量:包括可以全部在计算机上显示的符号,也可以说是ASCII码表上的全部字符,一个字符占一个字节。
字符常量表示方法:用单引号’ ‘将一个字符括起来。
在C语言中字符是按其所对应的ASCII码值来存储的,目前计算机系统中的字符集有两种:ASCII和EBCDIC码。

C语言中有两种类型的字符常量:
1.普通字符:用单引号”括起来的一个(单个)字符。
例如:’a’,’3’等。
注意:
(1).每个字符常量数据只能是一个字符,不能是一串字符。
(2).字符’1’和数字1的区别:前者是字符常量,后者是整型常量。它们的含义和在计算机中的存储方式都不相同。
(3).字符常量可以像整型常量(整数)一样在程序中参与相关的运算。例如:’a’+32;/* 执行结果65+32=97,是a的ASCII码值 */

2.转义字符:通常使用转义字符表示ASCII码字符集中不可打印的控制字符以及具有特定功能的字符。转义字符用()开头后面跟一个字符或者一个八进制或者十六进制数表示。

字符串常量:用一对双引号”“括起来0个或多个字符组成的字符。
例如:”“空串
“a”是由一个字符a构成的字符串
注意:
(1).C语言规定字符串的最后必须以空字符’\0’结尾。这个结束符是C语言自动加上的,空字符并不计算在字符串的长度里,但是存储时,空字符将会额外的占用一个字节空间。
(2).字符序列中的字符个数称为字符串的长度。对字符串的理解中比较容易出错的是当字符串中出现转义字符时字符串长度的确定。

字符常量与字符串常量的区别
在内存中,字符常量的存储只占用一个字节,而字符串常量存储时,C语言编译系统将自动在字符串的尾部加上一个特殊的字符’\0’,作为字符串的结束的标志。系统依据此标志进行判断该字符串是否结束。
(1).’a’与”a”是不同的,’a’表示的是字符常量,在内存中占一个字节。而”a”表示的是字符串常量。在内存中占2个字节。
(2).一个字符串常量的存储长度要比实际的字符串长度多一个字节(字符)。
字符常量与字符串常量的区别是:
(1).书写格式不同:”与””
(2).表现形式不同:一个与多个
(3).存储方式不同:长度不同

符号常量:在C语言中允许程序中的常量定义为一个标识符,这个标示符称为符号常量。既带有名字的常量。
定义格式:#define <符号常量> <常量>
例如:#define AGE 35
优点:
(1).简化书写格式,减少出错率
(2).可以和常量一样进行运算,一旦要求有所变化,只需要改宏定义。
注意:
(1).符号常量不同于变量,在其作用域内不能被改变和重新赋值。
(2).习惯上,符号常量名用大写英文标识符,而变量名用小写英文标识符,以示区别。
(3).定义符号常量可以提高程序的可读性,便于程序的调试和修改。因此在定义符号常量名时,应尽量使其表达它所代表的常量的含义。

变量:就是在程序运行过程中其值发生改变(可以被改变)的量值。
C语言规定所有用到的变量都必须在程序中指定其数据类型,必须”先定义后使用”,一个变量应该有一个名字(标识符),一种数据类型以及一个数据值。
定义变量时要给其命名:该变量在内存中占据一定的存储单元,编译系统根据定义的变量的数据类型为其分配存储单元并在该存储单元中存放变量的值。
变量的命名:
C语言允许将值存放在变量中,C程序中出现的每个变量,都是由用户在程序设计时按照标识符的规则取名并定义的。每个变量都是由一个变量名来标识。
注意:
(1).C语言规定标识符只能由字母,数字和下划线组成。且第一个字符必须是字母或下划线。
(2).大,小字母被认为是不同的变量名。Sun,sun,SUN是三个不同的变量。为了避免混淆,应该为变量取不同的名字而不是用大小写区分。
(3).变量名的长度无统一的规定,但在取名时长度尽量在31位有效字符之内。
(4).尽量取与变量含义接近的名称。

变量的定义
变量的定义说明了变量叫什么以及用来做什么。定义一个变量的过程,实际上就是向内存申请一个变量的数据类型大小的空间的过程。变量实质上就是内存某一单元的标识符号,对这个符号的引用就是对相应的内存单元的存取操作。

变量的基本数据类型:整型变量,实型变量,字符型变量

整型变量:
C语言提供的整数变量有:
基本型(int)
短整型(short int,short)
长整型(long int,long)
无符号整型(unsigned int,unsigned long,unsigned short)

实型变量:
C语言提供的实型变量有两种类型:
单精度(float)
双精度(double)
在一般系统中,C语言对一个float型实数提供4个字节的存储单元,而对一个double型实数则提供8个字节的存储单元。float可存放7位有效数据,double可提供15-16位的有效数据。
注意:
(1).运用实数运算时要注意数据的范围。
例如:float a; a=0.00000011;需要用double来进行定义。
(2).一个实型常量可以赋给float或double型变量,根据变量的类型截取实型常量的相应有效位数。

字符变量:用来存放一个字符常量。即一个字节存放一个字符。
格式:char <变量列表>
注意:不能将一个字符串变量赋值给一个字符变量。
为什么字符数据与整型数据之间可以通用??
字符型的数据在机器内存中是以ASCII码的形式保存的,由于ASCII码的取值范围为0~255,可用一个字节存放。字符型数据在内存中以二进制码形式存放,而整型数据在内存中也是二进制码的形式。也就是说:字符数据与整型数据的内存中的存储格式是一样的。也就是说:字符数据与整型数据在内存中的存储格式是一样的。基于这一点,C语言允许整型数据与字符型数据通用。实际上字符是一组小整型的集合。

变量的引用原则
在C语言程序设计中,变量必须遵循”先定义,后使用”的原则。也就是说在具体使用某个变量之前必须对这个变量定义。

C语言的运算符
C语言的运算符有以下几类:
(1).算术运算符:(+,-,*,/,%,++,–)
(2)关系运算符:(>,<,>=,<=,!=,==)
(3)逻辑运算符:(!,&&,||)
(4)位运算符:(<<,>>,~,|,^,&)
(5)赋值运算符:(=)
(6)条件运算符:(?:)
(7)逗号运算符:(,)
(8)指针运算符:(*,&)
(9)强制类型转换运算符:(type)
(10)分量运算符:(.和->)
(11)下标运算符:([])
(12)函数调用运算符:(())

C语言的表达式
概念:表达式是由常量,变量,函数通过运算符链接起来而形成的一个算式。
特别地:一个常量,一个变量,一个函数都可以看成是一个表达式。

表达式的求值原则:
C语言规定了运算符的优先级和结合性。
在表达式求值时,先按运算符的优先级级别的高低次序执行。
如果运算符两侧的优先级级别相同,则按规定的”结合方向”处理。

类型转换
C语言中,类型转换可能发生在赋值运算,算术表达式和输出时。
(1)赋值运算的类型转换
转换原则:当赋值运算符”=”右侧表达式的值被计算出来后,不论是什么类型都一律转换为”=”左侧的变量的类型,然后再赋值给左侧的变量。
注意:在赋值类型转换时要注意数据值的范围不能溢出。

(2)算术运算的类型转换
如果一个运算符有两个不同类型的运算分量,那么在运算前,先将较低类型的数据提升为较高的类型,从而使两者的数据类型一致,然后再进行计算,其结果是较高类型的数据。类型的高低是根据其数据所占内存空间的大小来判定的,占用空间越大,类型越高。反之越低。

(3)输出时类型转换
在数据输出时发生的类型转换。同样要遵守”类型提升”的原则。
注意:
1.数据类型的转换通常是由编译系统来自动进行的,一般情况下,不需要程序员人工编写程序干预,所以又被称为隐式类型转换。
2.如果要求一定将数据的类型从某种类型转换为另外一种类型,则需要人工编程进行强制类型转换,也叫显式转换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值