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

数据是程序加工和处理的对象,也是程序加工和处理的结果。
常量又称为常数,是在程序运行过程中其值不能改变的数据。
常量可以有不同类型,C语言规定常量包括整型常量,实型常量,字符型常量,字符串常量和符号常量。
使用常量时,不需要事先定义,只需要在程序中直接写出,常量的类型系统可以通过书写形式自动识别,无需定义。
整型常量通常称为整数,不带有小数部分,包括正整数,负整数和0
由于整型常量分为基本整型,短整型和长整型,又分为八进制,十进制,十六进制三种书写形式,所以使用整型常量时应注意区分。
实型常量又称为浮点型常量或实数,实型常量只是用十进制。
字符常量包括普通字符常量和转义字符常量两种。普通字符常量是用一对单引号括起来的单个字符,例如:‘a’,’?'均为普通字符常量。此外C语言还允许使用
一种特殊形式的字符常量,即以反斜杠“\”开头的转义字符,他只代表某一种特定的ASCII码字符。
字符串常量又称为“字符串”,是用双引号括起来的零个或者多个字符的序列。字符串中字符的个数称为字符串的长度。若字符串长度为0,则称为空串。
符号常量是常量的另一种表示方法,为了在程序中明确表示某些常量的含义,可以给常量取一个容易识别的名字,且符号常量名应符合标识符的命名规则。
符号常量使用之前必须先定义,格式如下
#define 符号常量 常量
符号常量优势:1.提高程序的可读性,2.便于程序修改。如果程序中多处使用某个常量时,当需要修改其值的时候,修改操作十分繁琐,甚至可能会出现漏改,
若程序定义了符号常量,则只需在定义的位置进行修改,工作量小,不易出错。

整型变量
根据占用内存字节数的不同,整型变量分为四种,即:
1.基本整型,关键字为int
2.短整型,关键字为 short[int]
3.长整型,关键字为 long[int]
4.无符号整型,又分为无符号基本整型,关键字unsigned[int],无符号短整型unsigned[short]和无符号长整型unsigned[long]三种

实型变量
实型变量分为两种,即
1.单精度实型,关键字为float ,一般占用4个字节
2.双精度实型,关键字为double 一般占用8个字节

字符型变量
字符型变量关键字是char,存放的是字符ASCII码值,占用内存1字节

运算符和表达式
运算符是进行各种运算的符号,例如常用的+,-,*,/符号,即是运算符
在这里插入图片描述

C语言的运算符必须有运算对象。按照参与运算的运算对象的数目,运算符可以分为单目运算符,双目运算符,和三目运算符。
当表达式中出现多个运算符,计算表达式的运算会根据以下优先级表来进行计算。
在这里插入图片描述

运算符还有结合性,所谓结合性是指当一个运算对象两侧的运算符具有相同优先级时,该运算对象是先与左边的运算符结合还是先与右边的运算符结合。
从左至右的结合方向称为左结合,从右至左的结合方向称为右结合。除单目运算符,赋值运算符,条件运算符是右结合外,其他运算符都是左结合。

关系运算符包括>,>=,<,<=,==,!=六种,他们都是双目运算符。
逻辑运算符包括&&,||和!三种用于对关系式和逻辑值进行运算,运算结果是逻辑值
逻辑运算符的优先级如下:
!优先于双目运算符,优先于关系运算符,优先于&&优先于||
单目运算符!和双目运算符的优先级相同,结合性是从右至左
双目运算符“&&”和“||”的结合性是从左至右

由赋值运算符或复合赋值运算符将一个变量和一个表达式链接起来的表达式,称为赋值表达式。
逗号运算符又称为顺序求值运算符,它是双目运算符,运算对象是表达式,常用于循环语句中。逗号运算符的优先级是最低的,结合性是从左至右
课后小练习
1.设int a=0,b=0,m=0,n=0,执行语句(m=ab)||(n=ab)后m和n的值分别是1,0 解:||前边那个括号里先算a==b,为真赋值给m,则m=1,括号后面相当于m的值
为真,所以不计算
2.设int a;则表达式(a=2,3),a+1的值是 3,解:a=2,a+1=3
3.设int x=100;则表达式x++>100?x+20:x+10的值是111
解:x++>100(100>100)取值为假,所以执行x+10,但执行x++后x=101 所以101+10 = 111
4.设int a=11,则表达式a+=a-=aa的值是-220
解:从右往左计算a=a+a=a-a
a;a=11-121,a=-110±110
5.设char c=‘A’;int i =1,j;执行语句j=!c&&i++;后,i和j的值分别是1,0
解:c=‘A’,!c=0;所以i++不执行j=0,i=1
6.不能进行++和–的运算数据类型是double
7.C语言的运算符按运算对象的数目可以分为,单目,双目和三目运算符
8.C语言中关于运算符优先级的说法是 算术运算符高于关系运算符,关系运算符高于逻辑运算符

猜你喜欢

转载自blog.csdn.net/G_whang/article/details/113082612