博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c的数据类型详解与逻辑运算
阅读量:3960 次
发布时间:2019-05-24

本文共 1360 字,大约阅读时间需要 4 分钟。

1.整数类型

数据类型 所占字节 范围
char 1字节 -128 ———127
short 2字节 -32768——32767
int 取决于编译器
long 取决于编译器
long long 8字节
那么问题来了,如何表示负数呢?

一个新概念:补码

二进制补码较为常见,简单来说,正整数的补码就是它本身的二进制,负整数的补码则为与之将相应的正整数的二进制中1与0相互交换
比如:-1的补码就是1111 1111,

数的范围

1个字节=8位,

unsigned:在整数类型前加上unsigned可以把该类型变成不带符号的整数,

若一个变量想表示自己是unsigned可以在后面加上u或者U

  • 例 255U
整数越界:在我们的单个整数类型当中,可以将他的范围理解为一个圆圈,当一个数走到127时,它再做加1的话它的值就变成-128。如下图:

其他数据类型同理,此处以char为例。。。。

在这里插入图片描述

整数的输入与输出
数据类型 / 进制 输入与输出
int %d
unsigned %u
long long %ld
unsigned long long %lu
8进制 %o
16进制 %x
在这么多数据类型选哪个好呢?

没有特殊需要,就选择int

在整数类型当中,还有一个特殊的类型——char

char —— 字符类型

用单引号表示,例:char c =‘1’;这里的变量c表示一个字符1
输入与输出都是%c

逃逸字符:
字符 意义 字符 意义
\b 回退一格 \ " 双引号
\t 到下一个表格位 \ ’ 单引号
\n 换行 \ \ 反斜杠本身
\r 回车

2.浮点数类型

类型 字长 有效数字
float 32 7
double 64 15
输出精度

浮点数用%f输出,而在%后面加上 .数字 表示输出小数点后多少位;

printf("%.5f",0.00458);
printf("%.10f",0.00458);
printf("%.20f",0.00458);
看下输出结果
在这里插入图片描述

超出范围的浮点数

printf输出inf表示该数超出范围

printf输出nan表示该数不存在

在这么多数据类型选哪个好呢?

没有特殊需要,就选择double


3.逻辑类型

bool

使用该类型时,要先定义一个 #include <stdbool.h>

4.指针类型


5.自定义类型


sizeof()

给出某个变量或类型在内存当中占据的字节,sizeof是静态运算符。在括号内部不做计算
例如:printf(“sizeof(int)=%d”,sizeof(int)); 其他数据类型同理
在这里插入图片描述


数据类型转换

1,自动数据类型转换

当俩个数据类型不相同时,会自动转换为较大的类型

char >> short >> int >>long >>long long
int >> float >>double

对于printf输出而言,任何比int小的数据类型都会转换为int

同理 float都会转换为double

而scanf输入不会,要输入short类型,需要%hd

2,强制数据类型转换

数据类型)值

例 printf("%d",(int)105.5); 会输出 105
其他数据类型同理。。。。


逻辑运算

名称 符号
俩条竖线
&&

转载地址:http://nfqzi.baihongyu.com/

你可能感兴趣的文章
两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]…*a[N-1]/a[i];
查看>>
用户态切换到内核态的3种方式
查看>>
笔试常见的智力题(附答案)
查看>>
内核库函数
查看>>
Linux 系统内核空间与用户空间通信的实现与分析
查看>>
linux内核空间和用户空间的区别及交互
查看>>
如何写好应用型学术论文
查看>>
如何查看进程的各种限制
查看>>
64位int类型用printf输出问题
查看>>
网络后台开发面试题目
查看>>
Linux 共享内存限制的查看与设置
查看>>
进程的状态转换
查看>>
如何查看进程的信息(线程数)
查看>>
read的用法
查看>>
查看系统信息(cpu,内存,硬盘,网卡)
查看>>
awk的混合编程
查看>>
awk编程
查看>>
Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
查看>>
默认shell的修改
查看>>
Linux中的chage命令
查看>>