7

数据类型_c语言的技术博客_51CTO博客

 1 year ago
source link: https://blog.51cto.com/u_15652430/5591322
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

数据类型_c语言的技术博客_51CTO博客

一、分类:

1、整数:short、int、long、longlong、char

2、浮点数:float、double、long double

3、逻辑:bool

5、自定义

(1)输出格式:int(%d)、iong(%ld)、double(%lf)

(2)所表达数的范围:char<short<int<float<double

char 1字节:-128~127         short 2字节:-32768~32767 

int:取决于编译器          long 四字节二          long long 8字节

  (3)内存中所占据的大小:1字节到16字节

      sizeof 是一个运算符,给出某个类型或变量在内存中所占的字节数(sizeof(int)、sizeof(i))

(4)内存中的表达形式:二进制(补码)、编码

二、整数

unsigned

(1)、unsigned,是为了纯做二进制运算,主要是为了移位,但也能扩展数能表达范围(%u)

数据类型_进制

加上unsignde表示 这个整数不以补码的形势存在,这个整数没有负数部分只有零和正数,使得这个类型所表达的数在正数部分扩大一倍,但是不能表达负数了

char :-128~127    unsigned char:0~255

数据类型_进制_02

输出则为c=255 i=255

 (2)、如果一个字面常量想表达自己为unsigned,可以在后面加u或U

8进制和16进制

一个以0开始的数字字面量是8进制

一个以0x开始的数字字面量是16进制

数据类型_强制转换_03

%o用于8进制,%x用于16进制(同样scanf也可以用)

数据类型_浮点数_04

三、浮点类型(无特殊需要用double)

double表达的范围比float要更大一些

(1)   输入    输出

float    %f       %f %e  (%e输出的是科学计数法 +004---->乘10的四次方  0.000001-->1e-6)

double %lf      %f %e

数据类型_强制转换_05
数据类型_进制_06

(2).df% 表示精度

在%与f之间加.d可以指定输出小数点后几位,但是这样的输出做的是四舍五入(看最接近的一位与五的关系)

数据类型_进制_07

(3) 超出范围的浮点数(整数不能表示无穷,浮点可以)

printf输出inf表示超过范围的浮点数:±∞

printf输出nan表示不存在的浮点数

四、bool

(1)使用前:使用bool类型前应加头文件:#include<stdbool.h>之后就能使用bool ture false

bool只有ture和false,0是false,其他情况都是ture

数据类型_进制_08

(2)使用范围:可用于逻辑表达式,也就是”或“ ”非“ ”与“之类的逻辑运算和大于小于之类的关系运算,逻辑表达式结果为真或假

五、字符类型

(1)char是一种整数,也是一种特殊的类型:字符

         用单引号表示字符字面量:‘a’,‘1’ (单个字符)

         ‘’也是一个字符

(2)输出 输入

printf和scanf里用%c来输出输入字符

数据类型_C语言_09
数据类型_浮点数_10

(3)'1'与1的关系

显然'1'与1不相等,‘1’字符用ASCII值表示

数据类型_c++_11

(4)字符计算

一个字符加一个数字得到ASCII码表中那个数之后的字符

数据类型_进制_12

两个字符相减,得到他们在表中的距离

数据类型_强制转换_13

六、转换类型

1、自动转换类型

(1)当运算两遍字符类型不同时

当运算符的两遍出现不一致的类型的时候,会自动转换成较大的类型(大指的是范围大)

char<short<int<long<long long

int<float<double

(2)输入 输出

printf:任何小于int的类型会被转换成int;float会被转换为double

scanf:scanf不会转换,short--->%hd  int--->%d   long long--->%ld

           但是不能以整数的形式输入一个char,只能先输入一个整数再把整数给char

2、强制类型转换:要把一个量强制转换成另一个类型(通常是较小的类型)

(1)格式:(类型)值 eg:(int)10.2  

注意:强制转换时的安全性,小的变量不总能表达大的变量

强制转换不是将原先值置换,而是换算了一遍

七、逃逸字符

数据类型_进制_14

(1)定义:逃逸字符表达无法印出来的控制字符或特殊字符,它由一个反斜杠“\”开头,后面跟着另外一个字符,这两个字符组合起来,组成一个字符

(2)\b:回退一格:让下一个输出回到上一个位置,降上一个位置的东西覆盖了

数据类型_浮点数_15

(3)\t:每行固定位置;一个\t使得输出从下一个制表位开始;用\t才能使得上下两行对齐

数据类型_C语言_16

(4)\n和\r的区别:

\n回车,回到当前行的首行,而不会换到下一行,如果接着输出,本行以前的内容会被逐一覆盖

数据类型_进制_17

\n换行,换到当前位置的下一行,而不会回到行首

数据类型_C语言_18

(5)\"  \'  \\ 则是输出“ ’ 、本身


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK