美文网首页
C语言的数据类型

C语言的数据类型

作者: Ryan_Hoo | 来源:发表于2018-06-30 18:01 被阅读0次

    1、整形数据

           数据在内存中的存放方式:数值是以补码表示的。一个正整数的补码和该数的原码(即该数的二进制形式)相同。求负数的补码的方法:将该数的绝对值的二进制形式,按位取反再加一。

    分类:

            1 ) 基本整形(int),范围  -2^15 ~ (2^15 -1),即-32768~32767。

            2)短整型(short)。

            3)长整型(long)。

           为了充分利用变量的值的范围,此时可以将变量定义为“无符号”类型。加上修饰符unsinged和singed,上面的数据可以变为6种整形变。如果不指定unsinged或者指定singed,则存储单元中最高位代表符号(0为正,1为负)无符号(singed)型变量只能存放不带符号的整数(且存储单元中全部二进位用作存放数本身而不包括符号)而不能存放负数,存放正数的范围比一般整数型变量中的正数的范围扩大一倍。不指定unsinged和singed,默认隐含为singed。long>int>short 。(整形数据在内存中占两个字节)12345u在内存中按unsinged int规定的方式存放,-12345u则先将其补码53191,然后按无符号数存储。还有123l、432L等,往往用于函数调用。函数的形参为long int型,则要求实参数也为long int型。

    2、浮点型数据

    2.1、浮点型数据在内存中的存放形式

    一个浮点型数据一般在内存中占4个字节(32位)。分为小数部分和指数部分按照指数形式存储。

    2.2、分类

    1)单精度(float型)。2)双精度(double型)。3)长双精度(long double型)

    程序内printf函数中的 "%f"是输出浮点数时指定的格式符。

    f = 2.45678 * 4523.65;系统先把2.45678和4523.65作为双精度数,然后进行相乘的运算,得到的乘积也是一个双精度数,最后取其前七位赋值给浮点型变量f 。但是运算速度降低了,如果在数的后面加字母f或者F,这样系统就会把他们按单精度(32位)处理。

    3、字符型数据

    程序内printf函数中的 "%c"是输出字符数据时指定的格式符。

    字符常量 使用单撇号(' ')括起来的一个字符。

    内存存储:将一个字符常量放到一个字符变量中,是把该字符的相应的ASCII代码放到存储单元。一个字符数据既可以以字符形式输出,也可以以整数形式输出,(ASCII(int)  <=> 字符(char))。

    字符串常量 使用一对双撇号(" ")括起来的字符序列。

    'a' 和"a"的区别:"a"以字符 '\0'作为字符串结束标志。

    混合数据运算的转换方向(char、short)->int ->unsinged -> long -> double <- float 。

    箭头方向只表示数据类型级别的高低。不能理解为int型先转换为unsinged int型,再转为long,再转为double(错误)。int和double数据运算,int直接转为double进行运算。

    逗号运算符和逗号表达式:表达式1,表达式2     求解过程为先求解表达式1,再求解表达式2.整个表达式的值为表达式2的值。(a = 3*5 ,a*4)赋值运算符的优先级高于逗号运算符,所以结果为60。

    相关文章

      网友评论

          本文标题:C语言的数据类型

          本文链接:https://www.haomeiwen.com/subject/hgxvyftx.html