C语言_数据类型[详细分析]

news2025/1/9 16:44:35

接上一篇:C语言_关键字_标识符简介

本次来分享C语言的数据类型,是博主的一些学习笔记的和心得的总结,话不多说,开始上菜:

此博主在CSDN发布的文章目录:我的CSDN目录,作为博主在CSDN上发布的文章类型导读

目录

  • 1.C语言数据类型
    • 1.1.基本数据类型
    • 1.2.类型修饰符
    • 1.3.类型大小和范围
  • 2.数据类型剖析
  • 3.数据类型的本质
  • 4.数据类型的封装void*

1.C语言数据类型

在这里插入图片描述

1.1.基本数据类型

数据类型 					 描述							占用字节(32位)
short						短整型								2
int            			 	整型                   	       		4
long						长整型								4
float         				浮点类型               	  	   		4
double         			 	双精度浮点类型           		  	8
char          				字符类型                   	  		1
enum						枚举类型

注意:
1、可以用sizeof可以求数据类型大小,
2、sizeof是操作符,不是函数;
3、sizeof测量的实体大小为编译期间就已确定

1.2.类型修饰符

  一些基本数据类型能够被 signed(有符号对应int:表示有负数、0、正数)、unsigned(无符号对于int,只有正数和0)修饰.
  当类型修饰符单独使用的时候, signed默认为:signed int;unsigned默认的类型是 unsigned int。

  下面是一些可能出现的带修饰的数据类型:
  [signed]char
  unsigned char
  [signed]int
  unsigned int
  [signed]short
  unsigned short
  [signed]long
  signed long
  [signed]float
  signed float
  [signed]double
  signed double

  [signed]:为默认,可写可不写

1.3.类型大小和范围

  基本数据类型的大小以及能够表示的数据范围是与编译器和硬件平台有关的,
  如:
  unsigned:无符号声明,其最小值是0。

  char:字符变量,用来声明字符变量,取值范围-128— +127。

  [signed] int:有符号基本整型,有符号一般省略signed。Visual C++用四个字节存储一个整型变量,范围约在-21亿 — +21亿。有八进制整型,以O开头;十六进制整型,以Ox开头。

  unsigned int:无符号基本整型,取值约范围0—42亿。一般省略int。

  short int:短整型,占两个字节,取值范围-32768 — +32767。一般省略int。

  unsigned short int:无符号短整型,取值范围0—65535.

  long int: 长整型,4个字节,取值范围约在-21亿 — +21亿。

  unsingned long int:无符号长整型,取值约范围0—42亿。

  float:单精度实型,有效位数为7位。

  double:双精度实型,有效位为15—16位。

  例子:

#include <stdio.h>
int main()
{
int a = 10;
int b[10] ;
printf("int a:%d \n", sizeof(a));		//4
printf("int a:%d \n", sizeof(int *));	//4
printf("int b:%d \n", sizeof(b));		//40
printf("int b:%d \n", sizeof(b[0]));		//4
printf("int b:%d \n", sizeof(*b));		//4
printf("hello.....\n");
getchar();
return 0;
}

2.数据类型剖析

  “类型”是对数据的抽象
   类型相同的数据有相同的表示形式、存储格式以及相关的操作
   程序中使用的所有数据都必定属于某一种数据类型
  
   C++编译器是可以在栈区分配内存的,用不同的数据类型就能确定内存大小,就可以在栈区分配的内存。

   C++编译器可以用数据类型确定分配多大的内存。

3.数据类型的本质

  数据类型可理解为创建变量的模具(模子);是固定内存大小的别名。
  数据类型的作用:编译器预算对象(变量)分配的内存空间大小
  程序举例,如何求数据类型的大小sizeof(int *)

  数据类型可以起别名,用关键字typedef

4.数据类型的封装void*

  1、void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。

  2、用法1:数据类型的封装
     int InitHardEnv(void **handle);
   典型的如内存操作函数memcpy和memset的函数原型分别为
    void * memcpy(void *dest, const void *src, size_t len);
    void * memset ( void * buffer, int c, size_t num );

  3、用法2: void修饰函数返回值和参数,仅表示无。
     如果函数没有返回值,那么应该将其声明为void型
     如果函数没有参数,应该声明其参数为void

       int function(void)
       {
			return 1;
		}

  4、void指针的意义
      C语言规定只有相同类型的指针才可以相互赋值
      void*指针作为左值用于“接收”任意类型的指针
      void*指针作为右值赋值给其它指针时需要强制类型转换
      int *p1 = NULL;
      char *p2 = (char *)malloc(sizoeof(char)*20);

  5、不存在void类型的变量
      C语言没有定义void究竟是多大内存的别名

  以上就是本次的分享了,希望对大家有所帮助,欢迎关注博主一起学习更多的新知识!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/567804.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何零基础快速搭建一个后台管理系统

真在的大师&#xff0c;都永远怀着一颗学徒的心&#xff01;&#xff01;&#xff01; 大家好&#xff0c;我是为你们操碎了心的小编&#xff0c;今天我又带来了一款轻量级的saas后台管理框架&#xff0c;让你零基础也可快速搭建一个功能强大的后台管理系统。 niucloud-admin采…

什么是AOP,如何实现?(有落地代码)

AOP 的核心思想是将横切关注点抽象为一个独立的模块&#xff08;称之为“切面”&#xff09;&#xff0c;然后在需要应用它的地方进行调用。比如&#xff0c;在需要记录日志的方法中&#xff0c;我们可以定义一个切面来负责日志记录&#xff0c;这样所有调用该方法的地方都会被…

hugging face开源的transformers模型可快速搭建图片分类任务

2017年,谷歌团队在论文「Attention Is All You Need」提出了创新模型,其应用于NLP领域架构Transformer模型。从模型发布至今,transformer模型风靡微软、谷歌、Meta等大型科技公司。且目前有模型大一统的趋势,现在transformer 模型不仅风靡整个NLP领域,且随着VIT SWIN等变体…

关于I/O

I/O 1. 概念1.1 页缓存的简单工作流程1.2 页缓存的写机制或者写触发的时机1.3 为什么需要套字节缓冲区1.4 套接字缓冲区的简单流程 2. 传统I/O方式2.1 传统I/O读写流程2.2 传统 I/O的性能问题 3. DMA技术3.1 将数据写入磁盘的流程3.2 从磁盘读取数据的流程 4. 网络数据传输流程…

【python】制作一个点单小程序!

周末总是在吃的方面&#xff0c;及其纠结&#xff0c;今天来制作一个点单小程序&#xff0c;加入自己喜欢吃的东西&#xff0c;来慢慢挑选&#xff0c;让每个周末快乐无限&#xff01; 一.安装环境 python 3.7.8 QT xlrd、xlwt库使用pip接口进行安装 pip install xlrd pip …

DMBOK知识梳理for CDGA/CDGP——第一章数据管理

关 注gzh“大数据食铁兽“&#xff0c;回复“知识点”获取《DMBOK知识梳理for CDGA/CDGP》常考知识点&#xff08;第一章数据管理&#xff09; 第一章 数据管理 第一章在 CDGA|CDGP考试中分值占比均不是很高&#xff0c;主要侧重点是考概念性的知识&#xff0c;理解数据管理的…

设计模式 -第1部分 避免浪费- 第1章 Flyweight 模式 - 共享对象避免浪费

第1部分 避免浪费 注&#xff1a;其内容主要来自于【日】-结城浩 著《图解设计模式》20章节 极力推荐大家阅读原著 第1章 Flyweight 模式 - 共享对象避免浪费 1.1 Flyweight 模式 Flyweight 的意思"轻量级"&#xff0c;其在英文中的原意指比赛中选手体重最轻等级的一…

迪赛智慧数——饼图柱状图(基本饼图和基本柱状图):“怒路症”数据解读

效果图 35%的司机承认自己属于“路怒族”&#xff0c;还有65%的人表示自己不是“路怒族”。 近日&#xff0c;上海两车高架上斗气碰撞差点掉落高架&#xff0c;上海高架出现“史诗级”斗气车。小编在此呼吁大家&#xff0c;开车路上减压&#xff0c;避免坏情绪伴随&#xff0c…

DDoS攻击与防御(一)

前言 这章主要讲述DDoS攻击与防御方式 理论知识来源于 https://www.microsoft.com/zh-cn/security/business/security-101/what-is-a-ddos-attack 1&#xff1a;攻击 一般来说&#xff0c;DDoS 攻击分为三大类&#xff1a;容量耗尽攻击、协议攻击和资源层攻击。 1>容量耗尽…

shiro基于redis实现分布式权限管理,在加入shiro的缓存管理后,项目报错

shiro基于redis实现分布式权限管理&#xff0c;在加入shiro的缓存管理后&#xff0c;项目报错 报错信息概括解决其他详细报错信息 报错信息概括 2023-05-24 16:27:56.374 ERROR 28740 --- [nio-8092-exec-6] o.a.s.web.servlet.AbstractShiroFilter : session.touch() method …

水处理计算常用表格大全

第二章 设计方案城市污水处理厂的设计规模与进入处理厂的污水水质和水量有关&#xff0c;污水的水质和水量可以通过设计任务书的原始资料计算。2.1 厂址选择在污水处理厂设计中&#xff0c;选定厂址是一个重要的环节&#xff0c;处理广的位置对周围环境卫生、基建投资及运行管理…

加强密码安全,保护您的账户——ADSelfService Plus

在当今数字化时代&#xff0c;密码安全成为了每个人都需要关注的重要问题。随着越来越多的个人和组织依赖于互联网和电子系统进行业务和通信&#xff0c;确保账户的安全性变得尤为关键。在这方面&#xff0c;ADSelfService Plus是一个功能强大的解决方案&#xff0c;为用户提供…

版图设计工具解析-virtuoso的display.drf文件解析

1. display.drf文件解析 virtuoso的版图颜色定义分析 下图为virtuoso的版图颜色&#xff0c;包括填充&#xff0c;轮廓&#xff0c;彩点&#xff0c;线形 本文以smic18mmrf的display.drf文件进行解析 smic18的PDK包下存在display.drf文件 打开文件display.drf文件后看到如下…

ApiKit 简介安装以及如何使用

一、介绍 ApiKit 是接口管理、开发、测试全流程集成工具&#xff0c;定位 API 管理 Mock 自动化测试 异常监控 团队协作。 1、开发测试过程中的现状 yapi -- 管理接口文档 rap -- 前端开发mock数据 postman -- 开发调试接口、测试调用接口 jmeter -- 基本的压力测试 2…

1个普通Java程序员需要具备什么样的素质和能力才可以称得上高级工程师?

1个Java程序员具备什么样的素质和能力才可以称得上高级工程师&#xff1f; 这个问题也引发了我的一些思考&#xff0c;可能很多人会说&#xff0c;“作为高级工程师&#xff0c;基础得过硬、得熟练掌握一门编程语言、至少看过一个优秀开源项目的源代码、有过高并发/性能优化的…

【RocketMQ】RocketMQ入门

【RocketMQ】RocketMQ入门 文章目录 【RocketMQ】RocketMQ入门1. 消费模式2. 发送/消费 消息2.1 同步消息2.2 异步消息2.3 单向消息2.4 延迟消息2.5 批量消息2.6 顺序消息 1. 消费模式 MQ的消费模式大致分为两种&#xff0c;一种是推Push&#xff0c;一种是拉pull。 Push模式…

在变压器厂中使用 ISA-95 应用程序进行调度集成

介绍 在工业批量和连续生产/运营环境中&#xff0c;调度涉及将诸如罐、反应器和其他加工设备之类的资源分配给生产/运营任务。第 4 层生产/运营计划确定要制造什么产品、要制造多少产品以及何时制造。根据设备、物料、人员和班次的可用性&#xff0c;随着时间的推移分配资源。…

CSDN中如何获得铁粉(用心篇)

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

快速实现pytest自定义配置项,让Web自动化测试更便捷!

目录 前言&#xff1a; 一、什么是pytest.ini 二、在pytest.ini中添加自定义配置项 三、使用自定义配置项 四、结论 前言&#xff1a; WEB自动化测试是一个重要的环节&#xff0c;需要结合框架和工具进行开发。在WEB自动化测试中&#xff0c;常用的是pytest框架&#xff…

go sync包

官方文档&#xff1a;https://pkg.go.dev/sync 临界区 临界区(critical section)是指包含有共享数据的一段代码&#xff0c;这些代码可能被多个线程访问 或修改。临界区的存在就是为了保证当有一个线程在临界区内执行的时候&#xff0c;不能有其他任何线程被允许在临界区执行…