数据类型----基本类型

数据类型的类型

1 基本数据类型:不可以再分解成其他类型了,是自我说明的

2 构造数据类型:一个构造类型的值可以分解成若干个成员或者元素,每个成员都是一个基本数据类型或者又是一个构造类型

例如:数组类型、结构体类型、共用体(联合体)类型

3指针类型:他的值是用来表示某个变量在存储器中的地址

4 空类型:再调用函数时,通常向调用者返回一个函数值,这个函数值具有一定的数据类型,应在函数定义及函数说明中给以说明,例如在前序中,写的int max(int a,int b);int类型就说明这个函数的返回值是整型量,其中特殊的是void,我们后续会介绍这个用法

常量和变量

我们基于基本数据类型,按照取值是否可改变又分为常量和变量两种

在程序执行过程中,值不发生改变的量成为常量,值可变的量称为变量

常量是可以不经过说明直接引用的,变量则必须先定义,后使用

常量和符号常量

符号常量:用标识符代表一个常量,符号常量比较特殊,他虽然是个常量,但是他需要先定义

符号常量在使用之前必须先定义,一般形式为:#define     (预处理指令)

那我们进一步思考一下,为什么要进行宏定义,如果我们从程序员角度来说的话,我们根据宏定义可以很快地明白这个程序写的什么意思,方便程序员理解这个代码,同时还可以做到一改全改,我们只需要修改PRICE后面的数值就可以了

综上得,1含义清楚,2能做到一改全改

变量

变量定义必须放在变量使用之前,一般放在函数体得开头,要区分变量名和变量值是两个不同的概念

整形数据

整形常量有八进制、十六进制和十进制三种

在程序中是根据前缀去区分的

补充:

内存中的二进制存储(一个字节byte=8位bit)

数值是以补码表示的;

正数的补码和原码相同;

负数的补码:将该数的绝对值 的二进制形式按位取反再加1

                                         例如:求-10的补码

                                          10的原码:0000 1010

                                           取反:        1111 0101

                                           再加1,得到-10的补码:11110110

                                           第一位是符号位,如果是0就代表是正数,是1代表是负数

整型变量

整形变量的分类(这里跟占多少个字节跟系统和编译器规定有关)

1  基本型:类型说明符为int,在内存中占4个字节

2  短整型:类型说明符为short int或者short,所占字节的取值范围均与基本型相同

3  长整型:类型说明为long int或者long,在内存中占四个字节

4  无符号型:类型说明为unsigned

代码1:

代码2:

我们知道short所表示的数很小,是有范围的,32767是0111  1111  1111,如果加1的话就成了1000  0000  0000是-32768

代码3:

这个例子想要说明的是不同类型的量可以参与运算并且相互赋值,其中类型转换是由编译系统自动完成,有关类型转换的规则将在以后介绍

实型数据

实型也称浮点型,只采用十进制(小数,指数)

实型变量分为:单精度(float),双精度(double)和长双精度(long double)

float也是有一定的承受限度,所以数不可以太大

补充:

1.0/3*3等于多少?

3/2呢?

1/3*3呢?

字符型数据

字符型包括字符常量和字符变量(char%c)

例如:‘a’,’b‘,’=‘,’+‘都是合法的字符常量

特点:

只能有单引号括起来;

只能是单个字符;

’5‘ 和 5 是不同的,’5‘是字符常量,不能参与运算

转义字符

小写字母换成大写字母

字符串常量和字符常量区别

1  字符常量由单引号括起来,字符串常量由双引号括起来

2  字符常量只能是单个字符,字符串常量则可以含一个或者多个字符

3  可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量

例如:char a=’a‘,但是不可以char  a=”a“;

各类数值型的数据之间的混合运算

一共分为两种方法,一种是自动转换,另一种是强制转换

自动转换

1  要转换为同一个类型,例如外交官去翻译别国的语言

2  转换按数据长度增加的方向进行,以保证精度不降低,例如int和long型,要将int转换成long型再进行运算

3  所有浮点型运算都是以双精度进行,即使只含有float单精度运算的表达式,也要转换为double型

char和short参与的时候,要转换成int

5   在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度,丢失的部分将四舍五入向前舍入

PI是实型,r和PI转换为double型,结果也是double型,由于s是整型,那么结果就是整型,所带来的代价就是丢失精度

强制类型转换

一般形式为:

(类型说明符)(表达式)

其功能是把表达式的运算结果强制转换成类型说明符所表示的类型

例如:

(float)a     强制把a转换成实型

(int)(x+y)  把x+y的结果转化为整型

特别强调一点,这里面的强行转换只会保留整数,而不是四舍五入

相关推荐

  1. QT基本数据类型

    2024-01-08 13:36:02       18 阅读
  2. Python基本数据类型

    2024-01-08 13:36:02       13 阅读
  3. HIVE基本数据类型

    2024-01-08 13:36:02       9 阅读
  4. 基本数据类型

    2024-01-08 13:36:02       11 阅读
  5. Oracle基本数据类型

    2024-01-08 13:36:02       7 阅读
  6. js基本数据类型

    2024-01-08 13:36:02       5 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-08 13:36:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-08 13:36:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-08 13:36:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-08 13:36:02       20 阅读

热门阅读

  1. 【Spring Boot 3】【数据源】自定义JDBC数据源

    2024-01-08 13:36:02       34 阅读
  2. DevOps(5)

    2024-01-08 13:36:02       31 阅读
  3. oracle数据迁移到mysql

    2024-01-08 13:36:02       45 阅读
  4. 2024.1.7 Spark SQL , DataFrame

    2024-01-08 13:36:02       51 阅读
  5. Spring Boot项目 目录结构

    2024-01-08 13:36:02       36 阅读
  6. C语言今日份练习

    2024-01-08 13:36:02       26 阅读
  7. 旋转图像【矩阵】

    2024-01-08 13:36:02       39 阅读
  8. 矩阵置零【矩阵】

    2024-01-08 13:36:02       38 阅读
  9. 利用事务实现转账(基于注解配置)

    2024-01-08 13:36:02       44 阅读
  10. 大模型技术的未来

    2024-01-08 13:36:02       39 阅读