C语言(数据类型)

原创 2016年08月30日 15:38:30

数据类型

  • 基本数据类型
    1. 整型 int
    2. 字符型 char
    3. 单精度浮点型 float
    4. 双精度浮点型 double
  • 限定符
    1. 符号限定符
      • 有符号 signed
      • 无符号 unsigned
    2. 长度限定符
      • 短整型 short
      • 长整型 long
      • 超长整型 long long

注意:

  • C 语言标准只规定了char 占用一个字节,而未规定int 占几字节,具体的字节数由编译器与机器架构实现,在32 位的机器上,int 一般占4 字节。
  • C 语言同样未规定short 与long 的具体长度,C 语言只规定了,short 的长度不能大于int,long 的长度不能小于int,具体的长度还是由编译器与机器架构实现。
  • 浮点数都是有符号数,不可以用限定符进行限定,像unsigned short float 这样的写法是错误的。
  • 在32 位的Ubuntu14.04 系统中,float 一般占用4 字节,double 一般占用8 字节。长度不一样导致两者所能表示的数据范围和精度不一样,float 型数据能得到6 位有效数字,而double 型数据能得到15 位有效数字。此外,long 可与double 构成long double 类型,表示高精度浮点型,经验证,long double类型的长度可以达到16 字节!

格式控制字符

可以通过不同的格式控制字符来控制数据的输出格式,采用不同的格式控制字符,即使相同的数据,也可以有不同的输出形式,具体的格式控制格式如下:

  1. %c:打印单个字符。
  2. %d:打印有符号的十进制整数。
  3. %u:打印无符号的十进制整数。
  4. %x:打印无符号十六进制整数,使用0~f。
  5. %X:打印无符号十六进制整数,使用0~F。
  6. %o:打印无符号八进制整数。
  7. %f :打印十进制浮点数。
  8. %e:打印浮点数。指数的形式1.23e+001
  9. %E:打印浮点数。1.23E+001
  10. %s:打印字符串。

输出长度与对齐方式控制

可以在格式化控制字符中限定字符的输出长度与对齐方式,以%X.Y□举例(□表示对应的格式化控制字符),X 用于限定输出的长度,在该长度以内,默认按照右对齐,可以前面加上“-”表示左对齐,超出该长度时,该参数无效。Y 用于限定浮点数的打印精度,默认是小数点后6 位

使用限定符

对于使用unsigned 或long 修饰的类型,打印时还需要加上对应的限定符描述,否则打印的结果也是不对的,规则列表如下 :

数据类型 格式控制字符
char/short/int %d
long int %ld
long long int %lld
unsigned char/short/int %u
unsigned long %lu
unsigned long long %llu
float/double %f 或 %lf
long double %Lf

关于使用scanf 有以下注意点

  1. 格式控制字符用于说明输入数据的类型,与printf 的控制格式字符遵循一样的对应关系。
  2. 输入参数是地址。
  3. 格式控制字符串中的非占位符也要按原样进行输入,比如“%d,%d”,那么在输入的时候,两个数之间要以逗号间隔。
  4. 在输入数据时,如输入空间、回车、tab 键或者遇到非法字符时,则认为输入数据结束。
  5. scanf 函数返回成功输入的数据个数。

C 语言中运算符的总结

  1. 算术运算符:
    • 五则运算:+ - * / %
    • 取反运算符:-
    • 自增与自减运算符:++ –
      注意点:
      1、%(取模运算)的操作数不可以是浮点数
      2、自增自减运算符只能用于变量,不能用于常量和表达式,类似5–,(a+b)++的写法都是不对的。
  2. 关系运算符:
    • 大于、大于等于:> >=
    • 小于、小于等于:< <=
    • 等于: ==
    • 不等于: !=
  3. 逻辑运算符:
    • 逻辑与: &&
    • 逻辑或: ||
    • 逻辑非: !
      注意点:
      逻辑运算的短路求值特性:
      表达式1 && 表达式2,当表达式1 为假时,与运算的结果肯定为0,所以表达式2 无
      须计算。或运算的规则请自行推导。
  4. 赋值运算符:=及其扩展赋值运算符
    赋值运算的结合方向是从右向左,类似 a = b = c = 3 的计算方式是 a = (b = (c = 3))。
  5. 条件运算符:? :
  6. 指针运算符:
    • 取地址:&
    • 解地址:*
  7. 求字节运算符:sizeof
  8. 位运算符:
    • 左移:<<
    • 右移:>>
    • 按位与:&
    • 按位或:|
    • 按位取反:~
    • 按位异或:^
  9. 成员运算符:. 和 ->
  10. 下标运算符:[]
  11. 逗号运算符: ,
    逗号运算是C 语言中优先级最低的运算符,所有表达式从左往右依次计算,逗号运算的结果
    是最后一个表达式的值。

运算符优先级表

表格来自《C 语言深度解剖(第2 版)》


版权声明:本文为博主原创文章,未经博主允许不得转载。

C语言 - 什么是数据类型?数据类型的本质

C语言中提供了许多的数据类型,如下图所示:C语言为什么要引入这么多的数据类型呢?因为C语言归根结底只是一门编程语言,一种让计算机为我们做事情的工具。引入这么多的数据类型是为了更加方便的表现现实世界中事...
  • u014622185
  • u014622185
  • 2015年11月04日 16:57
  • 3231

C语言系列(一)基本数据类型

C语言helloworld1.声明头文件,相当于java的导包。 //只有函数的声明,编译时会去找到函数的实现 #include 2.写main()方法 main(){ ...
  • u011974987
  • u011974987
  • 2016年08月06日 21:50
  • 3030

C语言几种常见数据类型的范围

转自:http://blog.csdn.NET/mafuli007/article/details/7325510 速查表: char -128 ~ +127 (1 Byte) sh...
  • Singular__point
  • Singular__point
  • 2016年11月10日 18:55
  • 1177

c语言基本数据类型(short、int、long、char、float、double)

一 C 语言包含的数据类型 short、int、long、char、float、double 这六个关键字代表C 语言里的六种基本数据类型。 在不同的系统上,这些类型占据的字节长度是不同...
  • wfreehorse
  • wfreehorse
  • 2017年03月06日 19:29
  • 2394

【C语言学习笔记】一、数据类型那些事儿

关于C语言数据类型及其相关议题的一些重点记录
  • amagamag
  • amagamag
  • 2016年10月12日 00:04
  • 1260

C语言的数据类型及范围

数据类型 序号 类型与描述 1 基本类型:它们是算术类型,包括两种类型:整数类型和浮点类型。 2 枚举类型:它们也是算术类型,被用来定义在程序中只能赋予其一定的离散整数值的变量。...
  • qq_25579889
  • qq_25579889
  • 2017年03月13日 21:34
  • 235

C语言数据类型与输出格式

http://www.cplusplus.com/reference/cstdio/printf/?kw=printf
  • chenyijun
  • chenyijun
  • 2016年06月25日 10:13
  • 388

C语言中32位和64位的数据类型长度

char * long 字符指针和长整形有不同,在32位下是4个字节,在64位是8个字节。
  • chencheng126
  • chencheng126
  • 2015年08月09日 11:43
  • 2327

C语言typedef自定义数据类型

我们知道,为了提高程序的可读性,C语言里支持用户自定义数据类型,关键字为typedef。   回忆以前写的东西的时候,突然想起自已这样用过typedef,怕未来再次忘记,为了加深记忆,在这里mar...
  • csu_jsj_wlp
  • csu_jsj_wlp
  • 2012年11月15日 00:13
  • 1914

C语言各种数据类型的长度是个问题

C语言各种数据类型的长度是个问题     C语言中,32位平台,64位平台,各种数据类型的长度定义不同,如果不准备在32和64位(没准还需要和128位)之间移植程序,则没有什么大问题,如果要考虑...
  • happyredstar
  • happyredstar
  • 2016年12月10日 12:57
  • 1205
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言(数据类型)
举报原因:
原因补充:

(最多只允许输入30个字)