C语言数据类型及运算符
数据的储存单位:
Bit 比特 一个二进制位,只能存0或者1,计算机中存储数据的最小单位
Byte 字节 八个二进制位,计算机中储存数据的基本单位
KB 1024字节
MB 1024KB
GB 1024MB
TB 1024GB
PB 1024TB
数据类型:
为什么要对数据分类:
- 现实生活中数据都是自带类别属性
- 对数据进行分类可以节约存储空间,提高运行效率
C语言中数据分为两大类:自建(程序员自己设计,例如:结构、联合、类),内建(C语言中自带)
内建:
可以使用sizeof计算类型的字节数大小 sizeof()
整型:
signed 有符号
signed char 1 -128~127
signed short 2 -32768~32767
signed int 4 大概正负20亿
signed long 4\8
signed long long 8 以9开头的19位数字的整数
注意:signed不加就代表加
unsigned 无符号
unsigned char 1 0~255
unsigned short 2 0~65535
unsigned int 4 0~40亿
unsigned long 4\8
unsigned long long 8 1开头的20位正整数
注意:由于定义无符号数据时比较麻烦,标准库把这些无符号的类型重新定义成以下类型:
需要包含一个头文件<stdint.h>
uint8_t uint16_t uint32_t uint64_t
- 浮点型:
float 4
double 8
long double 12\16
注意:采用科学计数法储存,二进制与真实的数据之间需要翻译转换,因此浮点型运算速度就比整型要 慢,编程时尽量采用整型
小数点后6位有效
判断float类型的数据是否是0
float num;
if(num 0<= 0.000001 || num >= -0.000001)
模拟:
- 字符型:char
char 字符其实就是符号或者图案,但是,在内存中储存的是整数,需要显示字符时,会根据ASCII码表· 中的对应关系来显示相应的符号或者图案
0 ’ ’ 特殊字符,表示什么都没有
48 ‘0’
65 ‘A’
97 ‘a’
- 布尔型:bool
由于先有C语言后才有了bool类型,所以C语言不可能有真正的布尔类型,使用stdbool.h头文件,该文件 是对布尔类型做的模拟
bool true false都不是C语言关键字
变量和常量
什么是变量:程序运行期间数值可以发生改变的叫做变量,相当于存储数据的盒子。
定义: 类型 变量名;
int num;
取名规则:
由字母数字下划线组成
不能以数字开头
不能与32个C关键字重名
见名知意【功能、类型、作用域】
使用:
赋值:num = 100;
参与运算:num*10;
注意:C语言中变量的值默认都是随机的,为了安全起见,一般都初始化为0
变量的输入输出:
int printf(const char *format, …);
功能:输出数据
format:" 双引号包含的格式信息(提示信息+占位符)"
… : 长度可变,变量的列表
返回值:输出字符的个数
int scanf(const char *format, …);
功能:从键盘输入数据
format:“双引号包括的格式信息(占位符)”
… : 要接收的变量的列表
返回值:成功输入变量的个数
注意: scanf需要的是变量的类型、变量的地址 ,变量的地址 = &变量名
类型占位符:
C语言通过占位符来传递变量的类型
signed: %hhd %hd %d %ld %lld
unsigned: %hhu %hu %u %lu%llu
浮点型: %f %lf %LF
练习1:定义各种类型的变量并初始化,使用scanf输入,然后使用printf显示
什么是常量:程序运行期间数值绝对不能改变的叫常量
1.字面值常量
100 ‘a’ “hello world”
2.枚举常量
3.宏常量
100 默认int
100u unsigned int
100l long
3.14 默认double类型
3.14f float
格式化输入输出:
%nd 显示n个字符宽度,如果不够补空格,右对齐
%-nd 显示n个字符宽度,如果不够补空格,左对齐
%0nd 显示n个字符宽度,如果不够补0,右对齐
%n.mf 显示n个字符宽度,小数点也算一位,不够补空格,m表示显示小数点后的位数(四舍五入)
%g 不显示小数点后多余的0
运算符
1. 自变运算符:前后++/–,使变量的值自动加1或者减1
前自变: 立即有效
后自变: 下一句语句有效
注意:不要在一行语句中多次使用自变运算符
2. 算数运算符:+ - * / %(/ %除数不能为0,会造成浮点数例外,核心已转储,程序直接死掉)
整数/整数 结果没有小数部分
3. 比较运算符:> < >= <= == !=
比较结果是0(假)或者1(真),运算结果可以继续参与运算
if((a>b) == 0)
int num = 500;
0<num<100;永远为真
600 == n(避免错误)
4. 逻辑运算符:&& || !
比较对象转换为逻辑值,0转换为假,非0转换为真
A && B: 一假即假
A || B: 一真即真
!A: 求反
&&,|| 具有短路特性
当左边的表达式可以确定整个表达式结果时,右边不进行运算
5. 三目运算符:运算对象有三个
A?B:C
判断A的表达式真假,如果真执行B,如果假,执行C
注意:该语句不能使用流程控制语句,因为它必须要有运行结果
6. 赋值运算符:= += -= *= /=
7. 位运算符:& | ~ ^ >> <<
类型转换
自动类型转换:
只有相同类型的数据才能进行运算,不同类型数据会自动转换成相同类型再进行计算:
转换规则:(以不丢失数据为基础,适当牺牲一点空间)
- 字节少的向字节多的转 考虑优先级
- 有符号的向无符号的转
- 整型向浮点型转
强制转换:
(想要转成的类型)原来的数据;
int num;
(short)num; 注意:有丢失数据的风险,慎重使用
C语言数据类型及运算符相关推荐
- C语言数据类型、运算符、表达式
数据类型.运算符.表达式 常量:在程序运行中,其值不能被改变的量就叫常量. 150; //整型常量 12.3; //实型常量(浮点型常量),带小数点的 'a'; //用单引号引起来的 ...
- C语言数据类型,运算符,函数
一,C语言的数据类型 1.整型.包括short.int.long等,用以表示一个整数,默认为有符号型,配合unsigned关键字,可以表示为无符号型. 2.实型,即浮点型.包括float, doubl ...
- c语言数据类型、运算符和表达式
数据类型 1.基本数据类型: 基本数据类型最主要的特点是,其值不可以分解为其他类型.也就是说,基本数据类型是自我说明的 2.构造数据类型: 构造数据类型是根据已定于的一个或多个数据类型用构造的方法来定 ...
- python语言数据类型与运算符课后作业_Python学习——02-Python基础——【2-运算符与基本数据类型】——课后作业...
1.执行 Python 脚本的两种方式 脚本:脚本简单地说就是一条条的文字命令,这些文字命令是可以看到的(如可以用记事本打开查看.编辑),脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器 ...
- c++ long 转 short_C精品编程之——C语言的数据类型、运算符、表达式,精品课程...
在前边的文章分享中,我们已经看到程序中使用的各种变量都应预先加以说明,即先说明,后使用.对变量的说明可以包括三个方面: ·数据类型 ·存储类型 ·作用域 在本课中,我们只介绍数据类型说明.其它说明在以 ...
- 当c语言表达式中同时有字符 整数,c语言第2章数据类型、运算符与表达式a.ppt
c语言第2章数据类型.运算符与表达式a C语言程序设计;本章主要学习任务;2.1 C的数据类型;注意:C语言中的数据有变量与常量,它们分别属于上述这些类型.;2.2 常量与变量;不是C语句,不必在行末 ...
- C语言(第二章):数据类型、运算符、表达式
.:.:第二章:数据类型.运算符.表达式:.:. 第二章: 数据类型.运算符.表达式 C语言的数据类型 在第一课中,我们已经看到程序中使用的各种变量都应预先加以说明,即先说明,后使用.对变量的说明可以 ...
- [iBoard 电子学堂][第二卷 C程序设计语言 ]第二篇 数据类型与运算符
一.数据类型 1.变量及命名规则 变量是存储在硬件存储器某一区间的数值.C语言中,变量的命名有一定的规则.变量名字是由字母和数字组成的序列(a~z.A~Z.0~9和 _),但第一个字符必须为字 ...
- c语言字符型运算符,C语言试题:数据类型、运算符与表达式
<C语言试题:数据类型.运算符与表达式>由会员分享,可在线阅读,更多相关<C语言试题:数据类型.运算符与表达式(4页珍藏版)>请在人人文库网上搜索. 1.3 数据类型.运算符与 ...
最新文章
- 应用丨其实,你每天都生活在人工智能中
- as用百度地图不联网就gg
- Nboot中nand flash控制器参数TACLS、TWRPH0和TWRPH1的确定(基于K9F1208U0B)
- 抓球球的机器人应该怎么玩_闲鱼2019年应该怎么玩?闲鱼上面的几大规则
- 秒懂5G!通俗易懂外行也能看明白
- How is assignment blocks of overview pages read from configuration
- 程序员幽默:年后上班综合症,你中了几招?!!
- Visual Studio 2017 15.3 预览版发布,接近最终版
- SpringBoot项目中,获取配置文件信息
- leetcode851. 喧闹和富有(dfs)
- Blum Integer的定义及举例
- COS中访问文件的三种方式
- java虚拟机时区_转:jvm设置时区问题
- 【Android】PA4D_CH6 使用Internat资源
- R语言中的字符串处理函数
- 阿里云ECS服务器的搭建过程小记
- 【JavaWeb开发】“web应用程序的根目录“与“web站点的根目录“的分析
- 【技巧】pytorch tif转成jpg
- SSD 输入图片尺寸、比例
- Tilera 服务器上OpenJDK的安装尝试