C语言之数据类型、标识符,运算符

目录

数据类型

整数类型

浮点类型

字符类型

标识符与关键字

标识符

关键字

运算符与表达式

算术运算符

关系运算符

逻辑运算符

位运算符

自增自减运算符

赋值运算符

逗号运算符

条件运算符

求字节数运算符


数据类型

基本类型:整数类型、浮点型、字符类型

整数类型

整型数据类型名称字节数取值范围
[signed] int整型4(-2^31~2^31-1)
unsigned int无符号整型4(0~2^31-1)
[signed] short [int]短整型2(-2^15~2^15-1)
unsigned short [int]无符号短整型2(0~2^16-1)
[signed] long [int]长整型4(-2^31~2^31-1)
unsigned long [int]无符号长整型4

(0~2^32-1)

 说明:c没有具体规定各种类型数据所占用储存单元的长度,只要求sizeof(short)<=sizeof(Int)<=sizeof(long),具体有个编译系统自行决定的。sizeof是测量类型或变量长度的运算符。

浮点类型

浮点数:实数的指数形式。

浮点类型字节数有效数字数值范围(绝对值)
float(单精度浮点型)46正数部分:0,以及1.2*10^-3.8~3.4*10^38
double(双精度浮点型)815正数部分:0,以及2.3*10^-308~1.7*10^308

long

double(长双精度浮点型)

815正数部分:0,以及2.3*10^-308~1.7*10^308
1619正数部分:0,以及3.4*10^-4932~1.1*10^4932

注意:用二进制表示一个实数以及存储单元的长度是有限的,只能存储成有限的精确度。小数部分占的位数愈多,数的有效数字愈多,精确度也就愈高。指数部分占的位数愈多,则能表示的数值范围愈大。

 表示方法:(1)十进制小数形式:由数字和小数点组成

                     (2)指数形式:“十进制小数或整数”+"e(或E)“+”十进制整数“,e(或E)的两边必须有                           整数,不能省略。

字符类型

类型名称字节数取值范围
[unsigned] char有符号字符型1-128~+127
unsigned char无符号字符型10~+125

ASCII字符集包括:

  1. 字母:A~Z,a~z
  2. 数字:0~9
  3. 专门符号:29个,包括!# & +/ , . ; ‘ "[|] {\} ()* - < > = ^ ~ ` : ? _
  4. 空格符:空格,水平制表符,垂直制表符,换行,换页不能显示的字符:空字符('\0'),警告('\a'),退格('\b'),回车('\r')等
    注:表示字符时可以用' '将字符括起来,也可以直接用ASCII中的编码值表示。

转义字符:以"\"引导的特殊常量表示。

\ddd:3位八进制数表示的ASCII码对应的字符

\xhh:2位六进制数表示的ASCII码对应的字符

注: 

  • 只能用小写字母,每个转义字符看作一个字符。
  • 转义字符'\v'与‘\f'不影响屏幕输出,仅影响打印机的打印输出。
  • 在C语言中,不可打印的字符都使用转义字符表示。
  • 字符类型的储存:内存中,以二进制的ASCII码形式存储。
  • 一个字符型数据,既可以以字符形式输出,也可以整数形式输出。

标识符与关键字

标识符

标识符:是有效字符数列,是一个对象的名字。用于表示用户自己定义的变量、符号常量、函数名、数组名、类型名等。

命名规则:

  • 不能是关键字
  • 只能由字母、数字和下划线组成,且区分字母大小写。
  • 名称的第一个字符必须是字母或下划线,不能是数字。
  • 名称中间不能有空格。
  • 标识符可以为任意长度,但最好不要超过31个字符。
  • 不要与C语言库函数名称相同。

提示:名称需要多个单词组合时可以采用匈牙利名称法。

关键字

定义:又称保留字,是C语言预先预定好的字符数列,不能作为标识符。

ANSIC中有32 个关键字:
存储类声明:auto const double float int short struct unsigned 
数据类型声明:break continue else for long signed switch void
运算符:case default enum goto  register sizeof typedef volatile
程序语句:char do extern if return static union while
关键字在程序设计的IDE中将会以特殊样貌显示,如在DEVC++中会加粗。


运算符与表达式

表达式:由操作数和运算符组成的序列,算术中四则混合运算类似,其中操作数可以是常量也可以是变量。

运算符;单目运算符 取负运算符(-)
            双目运算符 算术运算符(+)
            三目运算符 条件运算符(?:)

优先级:各类运算在一个表达式中的运算顺序。

规律:单目高于双目,双目高于三目,三目高于赋值。双目运算中10个优先级 顺序:算术高于位移,位移高于关系,关系高于位逻辑(不包括单目位逻辑运算符),位逻辑高于逻辑。

结合性:当一个运算量两侧的运算符优先级相同时运算的结合方向。如3+1-2,从左到右。

除单目运算符、赋值运算符和条件运算符是右结合性外,其他都是左结合性。

算术运算符

加法运算符减法运算符乘法运算符除法运算符求余运算符

+

-*/%
  • %运算符要求参加运算的运算对象(即操作数)为整数,结果也是整数。

两个实数相除的结果是双精度实数,两个整数相除的结果为整数。

(1)除法运算1/2=0,1.0/2=0.5
(2)求余数运算

#include<stdio.h>
int main()
{
	printf("%d\n",5%3);
	printf("%d\n",5%-3);
	printf("%d\n",-5%3);
	printf("%d\n",-5%-3);

return 0;
} 


优先级:( )  * / %  + -
结合性:从左至右

关系运算符

关系运算符实际是比较运算符。

小于大于小于等于大于等于等于不等于
<><=>===!=

优先级:<, >,<= ,>=高于==,!=

结合性:从左至右

逻辑运算符

&&

||

  • 逻辑运算中,非零当做真,0作为假,因此任何类型的数据都可以参与到逻辑运算。
  • 在C语言中,1为真,0为假。

优先级:!>&&>II
结合性:从左至右

在一个&&表达式中,如果&&左侧为假,则C语言不判断右侧。在II表达式中左侧为真,则C语言不判断右侧。

位运算符

按位与按位或按位取反按位异或左移右移
&|~^<<>>


注:分析位运算的结果时,先将运算的整数转换为二进制再进行按位运算。

左移:左移运算符是一个二元运算符,需要两个运算量参与,且必须是整数。如a<<n,表示将a按照二进制的最高位n位舍弃,最低的为用0补齐。
右移:最的位舍弃,最高的位补齐。补齐的数值根据运算类型决定。如果运算量是一个有符号整数则补其符号位,如果是无符号的整数则最高位补0.

自增自减运算符

++i,--i 在使用i之前,先使i得值加\减1,先增减,后运算。
i++,i--  在使用i之后,先使i得值加\减1,先运算,后加减。
结合性:自右向左
++与-是同优先级

自增,自减运算符不能用于常量和表达式。

赋值运算符

赋值运算符:=
赋值表达式:[变量]=[表达式]
优先级:!>算术>关系>&&和II>赋值
结合性:从右至左

复合赋值运算符:由赋值运算符之前再加一个双目运算符构成。
复合赋值运算一般格式:表达式1 op=表达式2
等价于:表达式1=表达式1 op
*=,/=,%=,+=,-=,^=,<<=,>>=,&=,|=,
优先级:与=同优先级
结合性:从右至左

逗号运算符

作用:将几个表达式隔开
优先级:最低
结合性:从左至右
整个表达式的值:最后一个表达式的值
注:C语言常用逗号作为分隔符。

条件运算符

条件运算符:?:
作用:判断一个逻辑表达式的结果,如果为真则指定执行某个表达式,如果为假则指定执行另外的表达式。条件表达式的实质就是起程序控制作用。
表达式1?表达式2:表达式3
求值规则:先求1,若为真(非0),求解2,并将2的值作为整个表达式的值;若1为假,求解3, 并将3的值作为整个表达式的值

求字节数运算符

sizeof()运算符是一个单目运算符,用于计算一个某类型的运算量所占用的字节数。
sizeof(类型标识);
sizeof(变量名);或sizeof  变量名;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值