数据类型、运算符和表达式

2.1:引例

知识点:
1:注释:

  1. 它是程序的注释,用于说明程序的功能,是为增加程序的可读性而设置的。
  2. 注释内容必须包含在/ /之间D,其内容可以是任何可显示字符,注释部分对程序的编译过程和执行结果没有任何影响。
  3. 注意 “/”和“* ”之间不能有空格。
  4. 在程序的适当位置插人注释,可以使程序容易被人理解。注释可以出现在程序中任意合适的地方,但必须成对出现。
  5. 注意注释不能出现在语句的中间
  6. 注释除了 可以使用“/注释内容 /"之外,还可以使用“//注释内容”。

知识点:它是本程序中的“主函数”,在一个C程序中有且仅有一个main( )函数,程序运行时,会首先从main()函数开始执行

-对大括号将函数的所有语句函数体。本程序中的函数体共有两条重句

  1. 第一条语句为语句末尾的分号表示该语句结束。注意C语言中除复合语句外的所有语句都必须以分号结束。
  2. 注意C语言有效的预处理命令总是以#开始的,预处理命令的末尾不加分号。在这里插入图片描述

2.2:c语言的数据类型

知识点:
(1)基本类型还可以分解为其他类型,主要为整型,字符型和浮点型。
(2)构造类型是根据已定义的一个或多个数据类型,用构造的方法来定义的。可以理解为,一个构造类型的值由若干个“成员”或“分量”构成。每个“成员”都是一个基本类型或一个构成类型。C语言构造类型包括:数组类型、结构体类型、公用体类型、和枚举类型。
(3)指针是C语言中一种特殊的,同时又具有重要作用的数据类型。

2.3:c语言的常量

知识点:C语言的常量常量是指在程序运行的过程中值不能被改变的量 分为“直接常量”和“符号常量”

2.3.1:直接常量

知识点:

直接常量分为:整型常量、实型常量、字符型常量、字符串常量

整型常量即整数,包括正整数、负整数和零、C语言中,整型常量可以用干进制、八进制和十六进制表示。

(1)十进制表示:由数字0~9,正、负号组成(2)八进制表示:以0(数字0)为前缀,其后由数字0~7组成,八进制数一般是无符号数;
(3)十六进制表示:以0x或0X为前缀,其后由数字0~9和字母A~F(字母大小写均可)组成,十六进制数一般是无符号数实型常量

注意:
(1)在一个整型常量后面加一个字母u或U,认为是 unsigned int型,如246U.
(2)在一个整型常量后面加一个字母 l或L,认为是long int型,如12L。

实型常量即实数,又称为浮点数。C语言中,实数只能用十进制形式表示,实数的表示方法有两种:小数形式和指数形式。

知识点:

1:小数形式:由整数部分、小数点和小数部分组成,当整数部分或者小数部分为0时,可以省略不写,但是小数点不可省略。如12. 345,3. ,-. 123等均为正确的实数。

2:指数形式:由尾数部分、字母E或e和指数部分组成,格式为:±尾数E指数。

注意:
(1)以小数形式表示实数时,必须有小数点,并且小数点的前、后至少-边要有数字。

(2)以指数形式表示实数时,字母E (或e)的前后必须有数字,并且指数部分只能是整数。如12.-E3、1. 5E、E6都是不正确的实数。

在C语言中,实型常量默认为是doubl 现的实数,如果在数的后面加字母f或F(如1. 65f、654.87F),则认为是float 型的实数。

字符型常量:字符常量指单个字符,用一对单引号及其括号所括起的字符来表示

知识点:
(1) 字符常量只能用单引号括起来,不能用双引号或其它括号。
(2) 字符常量只能是单个字符,不能是多个字符组成的字符串。
(3) 字符可以是ASCII字符集中的任意字符。按ASCII码的大小,不同的字符之间存在着次序,以字符的ASCII码值按升序连续排列。
(4) 对于控制符(如回车、换行等)与不可见字符,在C语言中通过转义字符来表示。
在这里插入图片描述
说明:
转义字符形式上由多个字符组成,但它是一个字符常量,只代表一个字符。转义字符的使用方法与一般字符常量的用法相同。

字符串常量:
字符串常量字符串常量是由一对双引号””括起来的零个或多个字符序列,如:”HelloWorld”

知识点:
字符串中可以使用空格字符、转义字符和其他字符,也可以使用汉字等文字符号
字符串中还可以使用空字符,如:”” 表示空串,即不包含任何字符

在这里插入图片描述
字符串的长度等于该字符串中所包含的有效字符的个数

符号常量:符号常量在C语言中,可以用一个标识符来表示一个常量,称之为符号常量;符号常量在使用之前必须先定义,其一般形式为:#define 标识符 常量值。

知识点:
符号常量的使用,可以为编写程序提供很多好处:

1:增加程序的可读性
2:提高程序的可维护性
3:简化程序代码
4:方便数组的定义

2.4:c语言的变量
C语言的变量在程序的运行过程中,其值可以被改变的量称为变量变量用于从外部接收数据、保存一不断变化的值、保存中间结果及最终结果,而这些都无法用常量来实现。

2.4.1:变量的定义与使用变量的定义

知识点:
(1)类型说明符必须是C语言中的有效数据类型,如intfloat. double .char等,用于指定变量的类型,该类型决定了编译时分配给变量的内存单元的多少。
(2)变量名表可以由一个或多个变量名组成,各变量名之间用",”分隔。变量名必须是合法的C语言标识符,变量名-般使用小写字母。
(3)变量的定义必须放在变量的使用之前,一般在函数体的开头部分进行定义。

知识点:

1:在C语言中,基本数据类型包括char(字符型)、int(整型)、float(单精度浮点型)及double(双精度浮点型)等。不同的类型用于存放不同的数据,所需的存储空间也不相同。
2:变量的初始化C语言允许在定义变量的同时对变量赋值,这个过程称为变量的初始化。如
在这里插入图片描述
知识点:对变量初始化时需注意
①对个变量赋初值之后 ,该值被存储在分配给该变量的内存空间中。
(2)不允许对多个 未定义的同类型变量连续初始化,如: “int x=y=3;”是不合法的,应写成“int x=3,y=3;”
(3)初始化时,一般应使“= ”右边表达式的数据类型和“=”左边的变量的类型致,如果不致,系统会进行自动赋值转换。
(4)没有进行初始化的变量.其值是由定义时所使用的存储类型
变量的使用:
变量定义之后,就可以在程序中使用,在程序中使用变量,称为变量的引用。
如进行数值计算,数据处理等。使用变量时.应该先赋值,后引用。在程序中可以通过初始化赋值表达式或者输人函数sanfO0来对变量赋值。

2.4.2:整型变量
一个整型变量用来保存整数。在C语言中,整型又可分为:短整型(short int)、整型(int)、长整型(long int)、 无符号整型( unsigned int)、无符号短整型(unsigned short int)和无符号长整型(unsigned long int)六种。

注意:
C标准没有规定各类整型数据所占内存的字节数,只要求短整型不长于整型,长整型不短于整型。某种类型的数据所占内存的大小随编译系统的不同而有差异。
在这里插入图片描述
说明:
(1)各种无符号整数所占的字节数与相应的有符号整数相同。但由于省去了符号位,故不能表示负数。
(2)有符号整数以二进制补码形式存储。最左边第1位表示符号,该位为0,表示正数,该位为1,表示负数。
(3)无符号整数以二进制原码形式存储。

2.4.3:实型常量
在这里插入图片描述
2.4.4 字符型变量
字符型变量的值是字符常量,即用单引号引起来的单个字符。字符型变量的类型说明符是char,其类型说明的格式和命名规则与整型变址相同。

知识点:
由于字符常量在内存中占用一个字节,用于存储它的ASCII码值,所以C语言中的字守具有数值特征,可以像整数一样参加运算,允许对整型变量赋以字符值,也允许对字符变t赋以整型值。C语言在输出时,允许把字符变量按整型量输出,也允许把整型量按字符量

2.5:运算符和表达式

知识点:
C语言中运算符和表达式数量之多,.在其他高级语言中是很少见的。正是丰富的运算符和表达式使C语言功能十分完善,这也是C语言的特点之一。

2.5.1:赋值运算符和赋值表达式

知识点:
C语言中赋值运算符有“一”、“十=”、“一=”、“*=”、“/="和“%="等。用赋值运算符将运算对象连接而成的表达式称为赋值表达式。

知识点:

1.简单赋值运算符
最简单的赋值运算符就是“一”,它的作用是将一个数值赋给一个变量。 如r=2 的作用是执行一次赋值操作(或称赋值运算)。把常量2赋给变量r。也可以将一个表达式的值赋给一个变量。

在这里插入图片描述
3.赋值表达式
在C语言中,赋值语句属于表达式语句。赋值表达式是由赋值运算符将一一个变量和一差 运个表达式连接起来的式子所组成。它的-般形式为

变量=表达式

由于赋值表达式的作用是将一个表达式的值赋给个变量,因此赋值表达式具有计算和赋值的双重功能。需要注意:赋值运算符的左侧必须是一个变量。

赋值表达式的执行过程是:
(1)计算赋值运算符右侧表达式的值。
(2)将所计算出的值赋给赋值运算符左侧的变量。区分赋值表达式和赋值语句的方法是:赋值表达式的末尾没有分号,而赋值语句的末尾必须有分号,在一个表达式中可以包含一个或多个赋值表达式,但绝不能包含赋值语句。

注意:(1)如果“=”左右两边类型不同,系统会按照赋值类型转换的原则将右边的类型转换成左边的类型。

2.5.2:算术运算符和算术表达式
1:基本的算术运算符
在这里插入图片描述
知识点:
(1)+加法运算符为双目运算符其功能是进行求和运算.
(2)作为单目运算符使用时.是取负运算,如一3;作为双目运算符使用时,是进行求差运算。
(3)乘法运算符,为双目运算符,功能是进行求乘积运算。
(4)除法运算符,为双目运算符,功能是进行求商运算。
(5)%求余运算符,为双目运算符,功能是进行求余数的运算。
求余运算要求参与运算的两个运算对象都必须是整型,其结果也是整型。

2:自增、自减运算符
知识点:C语言有两个特殊运算符“十十”和“一一”。
(1)++自增运算符,为单目运算符,其功能是使变量的值自加1。
自增运算符有两种
①前缀方式:用于变量前面,如int a= ++x”它是“先计算,后使用”,即先将x的值自加1,然后将x的值赋给变量a.对选样腔好省后者为十1后的值
②后缀方式:用于变量后面,如"inta=x++;"它是“先使用,后计算”,即先将x的值赋给变量a,然后再将x的值自加1。
(2)–自减运算符,为单目运算符,功能是使变量的值自减1,使用方法和自增运算符相似

注意:自增和自减运算符的操作对象只能是一个简单变量,不能是常量或表达式。

3.算术运算符的优先级和结合性

知识点:

C语言规定了运算符的优先级和结合性,单目运算符是右结合的。
双目算术运算符是左结合的。
算术运算符的优先级为:“++、-一、-”>“、/、%”>“十、一”,即单目运算符的优先级高于双目运算符)双目算术运算符中、/、%的优先级高于+、一。

在优先级相同的情况下,按规定的“结合性”进行处理。

4.算术表达式:

算术表达式是由算术运算符、运算对象和括号连接起来的式子,运算对象可以是常量、变量和函数等。

算术表达式使用注意:

(I)表达式中的乘号不能省略,且表达式中的所有字符均应写在同一行上。
(2)在表达式中还可以使用多层圆括号(不能使用中括号[口]和花括号{}),但是要注意招号的配对。

2.5.3:逗号运算符和逗号表达式

C语言中逗号“,”也是一种运算符,称为逗号运算符,其功能是把多个表达式连接起来组成一个表达式,称为逗号表达式。逗号表达式的般形式为:

表达式1,表达式2.,…表达式n

(1)逗号表达式的执行顺序是:从左到右依次计算每个表达式的值,并把最后一个表达式的值作为整个逗号表达式的值。
(2)逗号运算符是双目运算符,其优先级最低,是左结合的。
(3)并非所有出现逗号的地方都为逗号表达式,如在变量说明语句中,以及函数参数表中逗号只是用作各变量之间的分隔符。

2.5.4:求字节数运算符

运算符sizeof 用于计算数据类型所占的字节数,它是一个单目运算符,优先级高于双目运算符,其一般格式如下:
1:sizeof(表达式)或sizeof 表达式
2:sizeof(数据类型名)

2.6数据类型转换

C语言规定,各种不同数据类型的数据在一起运算时,不同类型的数据要先转换成相同类型的数据才能进行运算。数据类型的转换可以分为自动转换和强制转换。

2.6.1自动类型转换

不同类型的数据在一起运算时,编译系统会自动进行类型转换。进行自动转换的规则是:把占用内存空间少的(低级)类型向占用空间多的(高级)类型转换,以保证运算的精度。

说明:
(1)图2.2中的横向箭头表示必定的转换,如char型、short型数据必定先转换为int型,float型数据在运算时将先转换成double型,以提高运算精度(即使是两个float 型数据相加,也要先转换成double型,然后再相加)。
(2)图2.2中的纵向箭头表示当经过横向的转换后,进行运算的数据类型仍然不同时进行的转换方式。在不同数↑据类型的转换过程中,类型转换顺序并不是按箭头方向一步一步的转换,可以没有中间类型转换。例如int型与double型数据进行运算,先将int型的数据直接转换成double型,然后再进行两个同类型(double型)数据的运算。
(3)数据类型的各种转换只影响表达式的运算结果,并不改变原变量的定义类型,并且其数据值也不会发生任何改变。
(4)当赋值运算符两边的运算对象类型不同时,也要发生类型转换,转换的规则是:把赋值运算符右边表达式的类,图2.2数据类型自 动转换规则型转换为左边变量的类型。

在这里插入图片描述
2.6.2强制类型转换:

强制类型转换是采用强制类型转换运算符将某种数据类型强制转换成指定的数据类型,其一般形式为(类型说明符)(表达式)功能:把表达式的运算结果强制转换成类型说明符指定的类型。

知识点:进行强制类型转换时需注意
(1)需强制类型转换中的表达式定要括起来, 否则只对紧随括号后的量进行类型转换
(2)强制类型转换是种不安全的转换,如果是从高级类型转换成低级类型,则会损失数据的精度。
(3)强制类型转换并不改变表达式中变量的类型和值。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值