代码
/**
* 基本数据类型
*/
#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. TCP为什么会采用三次握手,若采用二次握手可以吗?

    建立连接的过程是利用C/S(客户机/服务器)模式,假设A为客户端,B为服务器端. TCP是采用三次握手进行连接的,简要说明该过程: (1) A向B发送连接请求 (2) B对收的的A的报文段进行确认 ( ...

  2. apt-get update 101错误解决办法

    在一次装好Ubuntu系统, 执行 sudo apt-get update 时,报了错 " W: Failed to fetch http://security.ubuntu.com/ubu ...

  3. Sass函数:列表函数nth

    语法: nth($list,$n) nth() 函数用来指定列表中某个位置的值.不过在 Sass 中,nth() 函数和其他语言不同,1 是指列表中的第一个标签值,2 是指列给中的第二个标签值,依此类 ...

  4. ThreadPoolExecuotor源码参考

    Executor --> ExecutorService --> AbstractExecutorService --> ThreadPoolExecuotor Executor接口 ...

  5. Center os6.5设置静态ip

    DEVICE="eth0"BOOTPROTO=staticHWADDR="00:0C:29:95:89:35"IPV6INIT="yes"N ...

  6. 第04章 AOP概述

    第04章 AOP概述 1.AOP概述 ●AOP(Aspect-Oriented Programming,面向切面编程):是一种新的方法论,是对传统 OOP(Object-Oriented Progra ...

  7. linux下安装maven私服nexus

    Nexus介绍 Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库 ...

  8. boost multi array

    Boost MultiArray is a library that simplifies using arrays with multiple dimensions. 1. #include < ...

  9. PHP curl_multi_close函数

    curl_multi_close — 关闭一组cURL句柄 说明 void curl_multi_close ( resource $mh ) 关闭一组cURL句柄. 参数 mh 由 curl_mul ...

  10. DIV 粘贴插入文本或者其他元素后,移动光标到最新处

    此文主要是可编辑div光标位置处理 1:首先 设置一个可编辑的DIV,注意:设置 contenteditable="true" 才可以编辑DIV <div id=" ...