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

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位,后面的都是计算机随机生成的。

http://www.kler.cn/news/308068.html

相关文章:

  • PHP:强大的Web开发语言
  • nginx实现https安全访问的详细配置过程
  • Spring Boot-RESTful API相关问题
  • 开源 AI 智能名片链动 2+1 模式 O2O 商城小程序在社群活动中的应用与时机选择
  • 海外云手机怎么实现TikTok多账号防关联?
  • 【iOS逆向与安全】frida-trace命令大全
  • AI 时代程序员的应变之道
  • 数据分析-25-时间序列预测之基于keras的LSTM+注意力机制预测风速
  • MySQL —— 视图
  • Serverless 安全新杀器:云安全中心护航容器安全
  • 图神经网络模型扩展5--3
  • 完全背包问题(优化版二维)
  • 在 Red Hat 上安装 SQL Server 2022 并创建数据库
  • Java代码实现Httpclient调用-验证码登录拦截获取到列表数据写入数据库
  • 昇腾服务器(Atlas800系列)部署embedding和rerank模型
  • USBCANFD卡再汽车电子行业中得应用
  • 【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(三十二)
  • python学习第十节:爬虫基于requests库的方法
  • python开发目录扫描工具
  • Vue3.5+ 响应式 Props 解构
  • 响应式网站的网站建设,需要注意什么?
  • win11 运行vmware workstation 虚拟机很卡,解决办法
  • 应用程序已被 Java 安全阻止:Java 安全中的添加的例外站点如何对所有用户生效
  • Rust 常见问题汇总
  • 【Kubernetes】linux centos安装部署Kubernetes集群
  • OpenHarmony鸿蒙( Beta5.0)RTSPServer实现播放视频详解
  • vue3 自定义el-tree树形结构样式
  • 【机器学习随笔】基于kmeans的车牌类型分类注意点
  • Java抽象/接口讲解(第五节)抽象类和接口的区别
  • 【C++】——继承详解