当前位置: 首页 > news >正文

C语言中数据类型

一、C 语言中数据类型

在这里插入图片描述

基本数据类型:

  • 整型(int):用于存储整数,如:1、2、3等。
  • 字符型(char):用于存储单个字符,如:‘a’、‘b’、'c’等。
  • 浮点型(float):用于存储小数,如:1.0、2.5、3.14等。
  • 双精度浮点型(double):用于存储更高精度的小数,如:1.000、2.567、3.1415926等。

2、构造数据类型:

  • 数组(array):用于存储同类型数据的集合,如:int arr[5] = {1, 2, 3, 4, 5};
  • 结构体(struct):用于存储不同类型数据的集合,如:
struct student {char name[20];int age;float score;
};
  • 枚举类型(enum):用于定义一组有名字的整数常量,如:
    •  enum week { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday };
      

3、指针类型(pointer):用于存储变量或函数的内存地址,如:int *p;

二、不同数据类型占用字节数

在这里插入图片描述

  • 1、不同数据类型中,主要是int 类型变化比较大, int 型数据是根据编译器的位数来的。一个字节(Byte)是8位(bit). 在早期计算机系统中,整数类型的大小经常与处理器的字长(word size)相对应。随着计算机技术的发展,处理器的字长不断增加,在32位系统上,它通常是4个字节(4*8bit=32bit);而在某些64位系统上int也维持4个字节,是为了兼容32位。

  • 2 、另一个是指针类型,因为指针类型保存的是地址,所以这个大小必须是能一个保存最大地址值。所以指针变量的大小通常是系统位数的最大值,这种设计确保了指针变量能够在系统的整个内存范围内进行寻址,从而支持程序的正常运行。

  • 3、同样的编译器,short字节小于等于 int. long字节大于等于int.

  • 4、如果在long类型和int类型占用空间相同的机器上编写代码,当确实需要32位的整数时,应使用long类型而不是int类型,以便把程序移植到16位机后仍然可以正常工作。类似地,如果确实需要64位的整数,应使用long long类型。

#include <stdio.h>   int main() {   printf("Size of char: %zu bytes\n", sizeof(char));printf("Size of int: %zu bytes\n", sizeof(int));   printf("Size of long: %zu bytes\n", sizeof(long));printf("Size of long long: %zu bytes\n", sizeof(long long));printf("Size of float: %zu bytes\n", sizeof(float));printf("Size of double: %zu bytes\n", sizeof(double));  printf("Size of pointer: %zu bytes\n", sizeof(void*));  return 0;  
}

在这里插入图片描述

三、不同数据类型所能表示的范围在这里插入图片描述

在这里插入图片描述

  • float 类型的有效位数一般是6到7位,后面的都是计算机随机生成的。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java ETL - Apache Beam 简介
  • CQRS模型解析
  • Git换行符自动转换参数core.autocrlf的用法
  • 第一个Web项目(java+servlet+jsp)
  • 五种数据库特性对比(Redis/Mysql/SQLite/ES/MongoDB)
  • 人工智能 | 基于ChatGPT开发人工智能服务平台
  • git 本地分支误删,怎么恢复?误删本地已提交未推送的分支!
  • Android 如何实现搜索功能:本地搜索?数据模型如何设计?数据如何展示和保存?
  • 二分算法——优选算法
  • [Python学习日记-26] Python 中的文件操作
  • 数据结构-树(基础,分类,遍历)
  • 黑马智数Day1
  • C++——将数组a[5]={-1,2,9,-5,7}中小于0的元素置成0。并将其结果输出(要求:用数组名作为函数的参数来实现)
  • 【无人机设计与控制】 基于matlab的蚁群算法优化无人机uav巡检
  • 通信工程学习:什么是VLAN虚拟局域网
  • 【Amaple教程】5. 插件
  • hadoop集群管理系统搭建规划说明
  • input的行数自动增减
  • JS题目及答案整理
  • Logstash 参考指南(目录)
  • python学习笔记-类对象的信息
  • ReactNative开发常用的三方模块
  • SpingCloudBus整合RabbitMQ
  • Sublime Text 2/3 绑定Eclipse快捷键
  • Vue.js源码(2):初探List Rendering
  • 记录:CentOS7.2配置LNMP环境记录
  • 如何解决微信端直接跳WAP端
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 双管齐下,VMware的容器新战略
  • #QT(一种朴素的计算器实现方法)
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (13)DroneCAN 适配器节点(一)
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (ros//EnvironmentVariables)ros环境变量
  • (二)linux使用docker容器运行mysql
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (附源码)计算机毕业设计ssm电影分享网站
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (三)docker:Dockerfile构建容器运行jar包
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (源码分析)springsecurity认证授权
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • (转)程序员疫苗:代码注入
  • (转载)CentOS查看系统信息|CentOS查看命令
  • (轉貼) UML中文FAQ (OO) (UML)
  • .naturalWidth 和naturalHeight属性,
  • .NET Core中Emit的使用
  • .NET delegate 委托 、 Event 事件