前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【C语言】数据类型(基本类型、构造类型、类型转换)

【C语言】数据类型(基本类型、构造类型、类型转换)

作者头像
颜颜yan_
发布2023-01-10 14:27:08
1.5K0
发布2023-01-10 14:27:08
举报

⏰打卡:DAY1 🏆今日学习目标:数据类型(基本类型、构造类型、类型转换) ✨个人主页:颜颜yan_的个人主页 🎉专栏系列:从0开始学C语言


文章目录


前言

最近C语言忘了好多,开始复习ing,记一下近日的笔记~


C语言中的数据类型分为4中,分别是基本类型、构造类型、指针类型、空类型。

在这里插入图片描述
在这里插入图片描述

这里查看一下每种数据类型的大小👇

在这里插入图片描述
在这里插入图片描述

基本类型

整型

不包含小数部分的数据都成为整型数据。在C语言中,根据数值的取值范围,可以将整型分为短整型(short int)、基本整型(int)、长整型(long int)。整型数据可以被修饰符signed和unsigned修饰,其中,被signed修饰的整型称为有符号的整型,被unsigned修饰的整型称为无符号的整型。 字节(Byte)是计算机存储空间的一种单位,它是内存分配空间的一个基础单位,即内存分配空间至少是1个字节。 最小的存储单位——位(bit),是一个二进制数字0或1占一位。 1B=8bit;

int类型在打印时使用%d

浮点型

浮点数分为单精度浮点数(float)和双精度浮点数(double)两种,其中double型变量所表示的浮点数比float型变量更精确。单精度浮点数后面以F或f结尾,双精度浮点数以D或d结尾。 浮点数的后缀可以省略,若省略,则默认为双精度浮点数。

double类型打印时使用%lf,float类型打印时使用%f。

字符型

字符型变量用于存储一个单一字符,在C语言中用char表示,其中每个字符变量都会占用1个字节。在给字符型变量赋值时,需要用一对英文半角格式的单引号(‘’)把字符括起来。 比如,'A’的声明方式:== char ch = ‘A’;==

字符型打印时使用%c。

构造类型

数组

数组是一组具有相同数据类型的变量集合,这些变量称为数组的元素,数组的类型由数组中存储的元素的类型决定。定义数组时要制定数组类型、数组大小。

int arr[5]; //定义一个int类型的数组,大小为5 char str[10]; //定义一个char类型的数组,大小为10 float ff[10]; //定义一个float类型的数组,大小为10

枚举类型

枚举类型用于定义值可以被一一列举的变量。声明方式如下:

enum 枚举名 {标识符1 = 整型常量1,标识符2 = 整型常量2,…}

enum是声明枚举类型的关键字,枚举名表示枚举变量的名称。 注意:枚举值是常量,在程序中不能给其赋值。

共用体

共用体又叫联合体,它可以把不同数据类型的变量整合在一起。使用union关键字进行声明,定义格式如下:

代码语言:javascript
复制
 union 共用体类型名称
 { 
	数据类型 成员名1;
	数据类型 成员名2;
	 ...
	数据类型 成员名n;
}
//定义共用体数据类型为data
union data
{
	int i;
	char ch;
}

共用体中的所有成员共用一块内存,在引用共用体变量时,只有一个成员变量是有效的。

结构体

结构体与共用体类似,可以将不同数据类型的变量整合在一起,区别在于,结构体中的所有成员都占有内存,在引用接哦古提变量时,所有成员都有效。结构体使用关键字struct定义。

类型转换

隐式类型转换

隐式类型转换是指系统自动进行的类型转换。

  1. 不同类型的数据进行运算,系统会自动将低字节数据类型转换为高字节数据类型,即从下往上转换。
  2. 在赋值类型不同时,即变量的数据类型与所赋值的数据类型不同,系统会将“=”右边的值转换为变量的数据类型再将值赋值给变量。

显式类型转换

显式类型转换是使用强制类型转换运算符,将一个变量或表达式转化成所需的类型。 基本格式为:(类型名)(表达式)

  1. 浮点数与整型的转换:将浮点数转换成整数时,将舍弃浮点数的小数部分,只保留整数部分。将整型值赋给浮点型变量,数值不变,只将形式改为浮点形式,即小数点后带若干个0。
  2. 单、双精度浮点型的转换:float类型数据参与运算时需要在尾部加0扩充为double数据类型。double型数据转换为float型时,会造成数据精度丢失,有效位以外的数据将会进行四舍五入。
  3. char类型与int类型的转换:将int型数值赋值给char型变量,只保留其最低8位,高位部分舍弃;将char型数值赋值给int型变量时,如果原来char型数据取正值,则转换后仍为正值;如果原来char型数据可正可负,则转换后也仍然保持原值。
  4. int类型与long类型的转换:long型数据赋给int型变量时,将低16位值赋给int型变量,而将高16位截断舍弃(这里假定int型占2个字节)。将int型数据赋给long型变量时,其外部值保持不变,而内部形式有所改变。
  5. 无符号整数之间的转换:将一个unsigned型数据赋给一个长度相同的整型变量时,内部的存储方式不变,但外部值可能改变。将一个非unsigned整型数据赋给一个长度相同的unsigned型变量时,内部存储形式不变,但外部表示时总是无符号的。

总结

以上就是今天的学习内容啦~ 如果有兴趣的话可以订阅专栏,持续更新呢~ 咱们下期再见~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 前言
  • 基本类型
    • 整型
      • 浮点型
        • 字符型
        • 构造类型
          • 数组
            • 枚举类型
              • 共用体
                • 结构体
                • 类型转换
                  • 隐式类型转换
                    • 显式类型转换
                    • 总结
                    相关产品与服务
                    对象存储
                    对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档