重新梳理一下C语言基本数据类型

      今天主要梳理一下关于参与C语言的基本数据类型。

      首先是常用的单位介绍:位、字节和字。位是最小的存储单位,它可以容纳2个值,0或1。1个字节均为8位。对于8位微机,一个字8位,对于16位机,一个字16位,32位机字32位。

      数据的储存方式:整数以二进制数字存储。浮点数将一个数分为小数部分和指数部分并分别储存。

       C语言的基本数据类型有基本类型、构造类型、指针类型和空类型。

       基本类型:主要有字符型和数值类型,其中数值类型分为整型(short,int,long,unsigned)、单精度实型(float)和双精度实型(double)。sizeof可用于测试数据类型的大小,sizeof后面不需要加括号 但是不能跟一个运算式(例:sizeof(i++)这个式子在编译的时候在预处理时会直接先处理,所以无法得到想要的结果)。unsigned char(无符号字符)取值范围为0--255,signed char(有符号字符型)取值范围为-128--127。

     构造类型:有数组类型、结构体类型、共用体类型和枚举类型。

     常量:其数值不能变的量,分为直接常量和符号常量。

     直接常量:在程序中直接引用的数据。有整型、实型字符型和字符串。整型又分为十进制、八进制和十六进制。十进制整型常量由正负号和0至9十个数字组成,没有小数部分。八进制在数码前加数字0(例如:012=10D)十六进制在数码前加0x(例如:0x12=18D)。实型分为十进制形式和指数形式,十进制形式由整数和小数两部分组成,这两部分可以省略其中的一个部分,但不能同时省略(小数点不能省略)。指数形式在小数后面加e表示指数(1e-2=0.02)。1e-2f表示float类型。字符型常量是由一个字母或者转义字符两边用单引号括起来表示(‘a’ 、‘D’、‘\n’)字符常量在计算机内存放的值为该字符的ascll编码值。字符串常量是由一对双引号括起来的0个或者多个字符序列(“how are you”),字符串里也可以使用转义字符,字符串中可以包含字符、空格字符、转义字符和其他字符,也可以包含汉字等文字符号。

    符号常量:是用标识符来表示一个数据,符号常量在程序中不能给它赋值(#define pi 3.1415926),符号常量增加了程序的可读性,增强了可维护性。

    变量:变量的基本要素为变量名、变量的数据类型和变量名。

   变量名:由字母、数字和下划线组成,以字母或下划线开头 

   变量定义:给变量分配存储空间(char ch;int x;double mnt;)

    变量初始化:给变量赋初值的过程称为变量的初始化。变量所标识的内存单元可能保留先前使用该单元时留下的内容而产生莫名其妙的结果,未赋初值的变量并不意味着该变量中没有数值,而只表明该变量中尚未定义特定的值。

       变量类型:整型变量、实型变量和字符变量。

       整型变量:基本型,以int表示。

                         短整型,以short int(short)表示。

                        长整形,以long int(long)表示,数据后加一个字母l或L,则认为是long int类型。

                        无符号整型,以unsigned int表示。

                        无符号短整形,以unsigned short表示。

                        无符号短整型,以unsigned long表示。

    

  实型变量:单精度型(float)和双精度型(double)。注意:单精度提供7位有效数字,双精度实型提供15-16位有效数字。

  字符变量:字符变量用来存放字符常量,注意一个字符变量只能存放一个字符。一般以一个字节来存放一个字符,或者说一个字符变量在内存中占一个字节。

     基本算数运算符:基本算数运算符有+、-、*、/和%。两个整数相除结果为一整数,分子小于分母,结果为零(5/2=2  2/5=0)。两数取余符号位取第一位的符号(-5%3=-2  -5%-3=-2  5%3=2  5%-3=2)。算术表达式是由算术运算符和操作数组成。表达式的值是一个数值,表达式的类型具体由运算符和操作数确定。(5+3*(6-2)位int型 3+4.0-3/2.0位double类型)。数据类型转换分为强制转换和隐式转换。强制转换直接将某数据强制转换成指定的数据类型,强制类型转化,变量值本身并未变化((int)(x+y) 先把x的值转换为int,再加y)。隐式转换在编译时自动完成,混合运算时数据类型由低级变为高级。

   赋值运算符和赋值表达式:= 将赋值符右边表达式的值赋给赋值符左边的一个变量。若=两边数据类型不一致,则进行类型转换。将实型数据赋给整型变量时,舍弃实数的小数部分(int i;   i=5.65;  i 的值为 5。)。将整型数据赋给实型变量时,数值不变(float f  ;  f=23;  (先23→23.00000 再存储在f 中))。将字符数据赋给整型变量时,将字符数据放到整型变量低8位中。复合赋值运算符:+=、-=、*=、/+、%=、<= 、>= 、&= 、^=、|=。赋值表达式是由赋值运算符将一个变量和一个表达式连接起来的式子(int x,y,z;x=y=z=5+2)。

   关系运算符和关系表达式:关系运算符用于两个数值之间的比较运算。< 、<=、 >、>= 、!=、==。由关系运算符和操作数组成的表达式称为关系表达式。关系表达式的值是一个逻辑型的值,即只有两个值(真和假)。

   逻辑运算符和逻辑表达式:

                                            逻辑运算符   结合律    优先级               运算符      优先级

                                                                             &&与                       自左至右         中                                         逻辑非!                   高

                                                                               ||或                         自左至右        低                                       算术运算符                |

                                                                              !非                        自右向左        高                                        关系运算符               |

                                                                                                                                                                                        &&和||                  |

                                                                                                                                                                                  赋值运算符              低

                                               逻辑表达式:  用逻辑运算符将关系表达式或逻辑量链接起来的式子

      自增自减运算符:  ++,--(i++先用再加  ++i先加再用)    结合律:自右向左

      逗号运算符:格式:式1,式2,式3,..........,式n   从左向右计算每个表达式的值,逗号表达式的值为式n的值

      数据输出:putchar():向终端输出一个字符。

                        printf()%d带符号十进制   %o八进制       %x十六进制         %u无符号十进制    %c无符号字符

                                        %f小数单双精度   %e指数形式 

     数据输入:getchar()从输入设备输入一个字符

                       scanf() 输入若干任意类型的数据   






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值