代码
/**
* 基本数据类型
*/
#include <stdio.h>
#include <limits.h> /* 定义 32 位时的 long 与 unsigned long 取值范围 */
#define LONG_MIN_32 -2147483648L
#define LONG_MAX_32 2147483647L
#define ULONG_MAX_32 4294967295UL int main(int argc, char *argv[]) {
// short
printf("short 取值范围为 %d ~ %d, 占 %d 个字节\n", SHRT_MIN, SHRT_MAX, sizeof(short)); // short 取值范围为 -32768 ~ 32767, 占 2 个字节
// unsigned short
printf("unsigned short 取值范围为 0 ~ %u, 占 %d 个字节\n", USHRT_MAX, sizeof(unsigned short)); // unsigned short 取值范围为 0 ~ 65535, 占 2 个字节
// int
printf("int 取值范围为 %d ~ %d, 占 %d 个字节\n", INT_MIN, INT_MAX, sizeof(int)); // int 取值范围为 -2147483648 ~ 2147483647, 占 4 个字节
// unsigned int
printf("unsigned int 取值范围为 0 ~ %u, 占 %d 个字节\n", UINT_MAX, sizeof(unsigned int)); // unsigned int 取值范围为 0 ~ 4294967295, 占 4 个字节
printf("__WORDSIZE(字的大小)为 %d 个位\n", __WORDSIZE);
// 根据__WORDSIZE的值决定long/unsigned long取值范围
// 64 位
// long
printf("__WORDSIZE 为 64 位时, long 取值范围为 %ld ~ %ld, 占 %d 个字节\n", LONG_MIN, LONG_MAX, sizeof(long)); // __WORDSIZE 为 64 位时, long 取值范围为 -9223372036854775808 ~ 9223372036854775807, 占 8 个字节
// unsigned long
printf("__WORDSIZE 为 64 位时, unsigned long 取值范围为 0 ~ %lu, 占 %d 个字节\n", ULONG_MAX, sizeof(unsigned long)); // __WORDSIZE 为 64 位时, unsigned long 取值范围为 0 ~ 18446744073709551615, 占 8 个字节
// 32 位
// long
printf("__WORDSIZE 为 32 位时, long 取值范围为 %ld ~ %ld, 占 4 个字节\n", LONG_MIN_32, LONG_MAX_32); // __WORDSIZE 为 32 位时, long 取值范围为 -2147483648 ~ 2147483647, 占 4 个字节
// unsigned long
printf("__WORDSIZE 为 32 位时, unsigned long 取值范围为 0 ~ %lu, 占 4 个字节\n", ULONG_MAX_32); // __WORDSIZE 为 32 位时, unsigned long 取值范围为 0 ~ 4294967295, 占 4 个字节
// long long
printf("long long 取值范围为 %lld ~ %lld, 占 %d 个字节\n", LLONG_MIN, LLONG_MAX, sizeof(long long)); // long long 取值范围为 -9223372036854775808 ~ 9223372036854775807, 占 8 个字节
// unsigned long long
printf("unsigned long long 取值范围为 0 ~ %llu, 占 %d 个字节\n", ULLONG_MAX, sizeof(unsigned long long)); // unsigned long long 取值范围为 0 ~ 18446744073709551615, 占 8 个字节
// char
printf("char 取值范围为 %d ~ %d, 占 %d 个字节\n", SCHAR_MIN, SCHAR_MAX, sizeof(char)); // char 取值范围为 -128 ~ 127, 占 1 个字节
// unsigned char
printf("unsigned char 取值范围为 0 ~ %u, 占 %d 个字节\n", UCHAR_MAX, sizeof(unsigned char)); // unsigned char 取值范围为 0 ~ 255, 占 1 个字节
// float
printf("float 占 %d 个字节\n", sizeof(float)); // float 占 4 个字节
// double
printf("double 占 %d 个字节\n", sizeof(double)); // double 占 8 个字节
// long double
printf("long double 占 %d 个字节\n", sizeof(long double)); // long double 占 16 个字节
}
思维导图

C的基本数据类型小结的更多相关文章

  1. JavaScript 数据类型小结

    数据类型对于机器而言,其意义在于更加合理的分配内存空间,而对于编程者而言,数据类型提供了我们相对应的一系列方法,对数据进行分析与处理. 在本文中,将对JavaScript数据类型的基础知识进行总结,全 ...

  2. MySQL常用数据类型小结

    在 MySQL 中,有三种主要的类型:字符串.数字和日期/时间类型. 目录 [隐藏]  1 字符串类型 2 数值类型 3 日期和时间类型 4 使用建议 5 艺搜参考 字符串类型 CHAR 0-255字 ...

  3. JS中的数据类型小结

    首先说说JS数据类型的分类.分为标准型和typeof类型(即控制台打印,浏览器区分) 标准型:基本类型中有:number.string.boolean.undefined.null  复合类型:obj ...

  4. Redis -- 数据类型小结

    redis key 的命名规则: 对象类型:对象id:对象属性  (hset car:1: price 500.hset car:1: name:tom) 一.redis 数据类型: 1. 字符串类型 ...

  5. python数据类型小结

    变量 变量是 为了存储程序 运算过程中的一些中间结果,为了方便日后调用. 变量的命名规则1.要有描述性2.变量名只能_,数字,字母组成,不可以是特殊字符(#)3.不能以中文为变量名4.不能以数字开头5 ...

  6. Java基础数据类型小结

    1.      记忆中的数据类型: 记忆中java一共有八种基础数据:boolean,byte,char,int,long,float,double,还有一种记不起来. 他们的长度分别为: 他们的用处 ...

  7. PHP 八种基本的数据类型小结

    四种标量类型: boolean (布尔型) integer (整型) float (浮点型, 也称作 double) string (字符串) 两种复合类型: array (数组) object (对 ...

  8. 【SQL】Oracle的PL/SQL语法及其拓展数据类型总结

    PL/SQL语法 PL/SQL程序由三部分组成,声明部分.执行部分.异常处理部分. 模板: DECLARE /*变量声明*/ BEGIN /*程序主体*/ EXCEPTION /*异常处理部分*/ E ...

  9. 14、redis安装及数据类型

    14.0.服务器配置: 服务器名称 ip地址 controller-node1 172.16.1.90 14.1.什么是redis: 1.redis的特点: (1)redis是一个开源的使用c语言编写 ...

随机推荐

  1. KMP,Trie,AC自动机题目集

    字符串算法并不多,KMP,trie,AC自动机就是其中几个最经典的.字符串的题目灵活多变也有许多套路,需要多做题才能体会.这里收集了许多前辈的题目做个集合,方便自己回忆. KMP题目:https:// ...

  2. 机器学习——k-近邻(K-Nearest Neighbor)

    目录 K-Nearest neighbor K-近邻分类算法 从文本文件中解析和导入数据 使用python创建扩散图 归一化数值 K-Nearest neighbor (个人观点,仅供参考.) k-近 ...

  3. linux time命令的输出中“real”“user”“sys”的真正含义

    下面转载的文章详细地介绍了time出来显示的“real”“user”“sys”的真正含义. Linux中time命令,我们经常用来计算某个程序的运行耗时,用户态cpu耗时,系统态cpu耗时. 例如: ...

  4. springboot使用异步查询数据

    主要适用于需要查询多种类型的数据,而且二者的参数没有关联的情况. 1.开启异步调用注解 2.创建抽象类,定义相关方法 /** * @author:YZH * time: 2019/8/8 12:16 ...

  5. python基础:8.正则表达式

    1.概念 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑. re模块的常见方法: ...

  6. 人生苦短_我用Python_openpyxl库读取Excel文件数据_008

    上图为读取的目标文件--------------------------------------------------------------------------------- # coding ...

  7. js实现动态加载input 提示信息

    思路:使用<datalist> 标签定义选项列表.请与 input 元素配合使用该元素,来定义 input 可能的值.datalist 及其选项不会被显示出来,它仅仅是合法的输入值列表.请 ...

  8. flask中间件请求流程

    from flask import Flask,session,url_for,request,flash,get_flashed_messages app = Flask(__name__) app ...

  9. Java并发与多线程与锁优化

    前言 目前CPU的运算速度已经达到了百亿次每秒,所以为了提高生产率和高效地完成任务,基本上都采用多线程和并发的运作方式. 并发(Concurrency):是指在某个时间段内,多任务交替处理的能力.CP ...

  10. .NET Core 使用 mongodb

    1.运行环境 开发工具:Visual Studio 2017 JDK版本:.NET Core 2.0 项目管理工具:nuget 2.GITHUB地址 https://github.com/nbfujx ...