类型说明符基本概念

C 语言提供了一下四种说明符,四个都属于关键字;

short短型等价于 short int

long 长型 等价于 long int

signed 有符号型

unsigned 无符号型

这些说明符一般就是用来修饰 int 类型的,所以在使用时可以省略 int

short和 long

short 和 long 可以提供不同长度的整型数,也就是可以概念整型数的取值范围

在 64 位编译器下,int 占用 4 个字节(32bit),取值范围是-2 ** 31~2 ** 31-1

short占用 2 个字节(16bit),取值范围是-2 ** 15~2 ** 15-1

long 占用 8 个字节(64bit),取值范围是-2 ** 63~2 ** 63-1

总结一下,在 64 位编译器下

short 占 2 个字节

int 占 4 个字节

long 占 8 个字节

因此如果使用的整数不是很大的话可以使用 short 代替 int,这样的话可以节省内存开销

int main(int argc, const char * argv[]) {

/*

short 2 个字节

int 4 个字节

long 8 个字节

long long 8个字节

*/

int num = 123456789999;

printf("使用int 来输出;%i\n",num); // -1097261585

// C语言中不看怎么存,只看怎么取

long num1 = 123456789999;

printf("使用int 来输出;%li\n",num1); // 123456789999 使用%li 或者 %ld 输出

long long num2 = 123456789999;

printf("使用int 来输出;%li\n",num2);

// long long 和 long 的区别

// 在 64 位的编译器下没有区别,在 32 位的编译器下 long long占 8 个字节,long 占 4个字节

return 0;

}

如果要输出 short int 的话使用%hi 或者%hd 输出

unsigned 和 signed

unsigned 无符号修饰

signed 有符号修饰

/*

signed

unsigned

*/

// 如果给变量前面加上 signed 修饰符的话,代表当前变量的取值范围是正数,负数,零

// 就代表把二进制的最高位作为符号位,默认是有 signed 的修饰的

signed int num = 9;

// 如果给变量前面加上了 unsigned 修饰符的话,代表当前变量的取值范围只能是正数和零

// 如果想打印无符号的变量要使用%u 进行输出

// 代表不把二进制的最高位w作为符号位,

unsigned int num1 = -11; // 4294967285,可以正常输出零,正数

printf("num1 前面加了 unsigned 进行修饰:%u\n",num1);

return 0;

不同类型的说明符可以混合使用

// 混合使用

// 相同类型不能在一起使用

long unsigned int num = 111111111111111199;

printf("混合使用输出:%lu\n",num);

// 输出 long 使用%l

// 输出 short 使用%h

// 输出 long long 使用%ll

// 输出 signed 默认就是 signed,使用%i

// 输出 unsigned 使用%u 输出

原文:https://www.cnblogs.com/shanshan-test/p/12977496.html

c语言long说明符,C语言-类型说明符 long,short,unsigned,signed相关推荐

  1. 解决error C2760:语法错误: 意外的令牌“标识符”,预期的令牌为“类型说明符”

    VS2017编译会报错 error C2760:语法错误: 意外的令牌"标识符",预期的令牌为"类型说明符" 解决办法: 项目属性->C/C++ -> ...

  2. c语言不通类型指针转换,C语言之强制类型转换与指针--#define DIR *((volatile unsigned int *) 0x0022)...

    强制类型转换形式:(类型说明符) (表达式) 举例说明:1) int a; a = (int)1.9; 2)char *b; int *p; p = (int *) b; //将b的值强制转换为指向整 ...

  3. C++ const限定符和auto类型说明符

    const限定符 # 1.限定常量 有时我们希望定义这样的变量:它的值不能被改变.为了满足这一要求,我们使用const对变量的类型加以限定: const int bufSize = 512; 这样就把 ...

  4. C语言学习6:数据类型 -> 基本类型 -> 整型类型(int、short int、long int、char等)

    目录 1.数据类型的分类 2.基本整型 int 3.短整型 short int 4.长整型 long int 5.双长整型 long long int 6.字符型 char 7.布尔型 bool 1. ...

  5. C语言学习笔记01:C语言基础语法_变量类型_类型转换

    文章目录 C语言第一天课程笔记 1. 内容安排 2. 课堂笔记 2.1 计算机硬件 2.2 计算机软件 2.3 编程语言和编译器 2.4 编程语言发展 2.5 C语言标准 2.6 C语言学习理由 2. ...

  6. c 编程替换语言,巧用typedef替换类型名称

    为了方便我们编写程序,通常我们在利用C语言进行编写程序的过程中都会给某一数据类型替换一个新的名称,而往往我们通过使用关键字typedef来给数据类型进行名称的替换.那么到底什么是关键字typedef呢 ...

  7. c语言常用变量,c语言基本数据类型(c语言常用变量类型)

    数据类型有:基本类型,导出类型,用户自定义类型 基本类型才包括:逻辑型 字符型 整型 浮点型 1.整型百int2(或4)同短整型(或长整型)2.短整型度short2-32768~327673.长整型l ...

  8. c语言顺序表有效元素长度,用C语言描述的顺序表类型

    2.2.1 顺序表 用C语言描述的顺序表类型如下所示: // 存储结构 const int MAXLISTSIZE=80; // 预设的存储空间最大容量 typedef struct { ElemTy ...

  9. C++语言程序设计之关联容器类型

    C++语言程序设计之关联容器类型 C++语言程序设计之关联容器类型

最新文章

  1. php fckeditor,php --- fckeditor
  2. 安装alien,DEB与RPM互换
  3. 基于长度特征的三文鱼好sea bass的区分,sesbass 比三文鱼长
  4. Opencv判断是否加载图片的两种方法
  5. python图形化界面开发工具_图形用户界面(GUI)常见问题
  6. 一主两从的环境,如果主库挂了,如何选举一个从库作为主库?
  7. 基于FPGA的异步FIFO设计
  8. leetcode怎么用时间刷_刷完700多题后的首次总结:LeetCode应该怎么刷?
  9. 交易机项目工作日志--2013-3-3
  10. 斜面上的根骨骼运动以及刚体测试
  11. layui表格取消横向滚动条_layui滑动条如何隐藏
  12. 提升工作效率的优秀工具收藏
  13. ROS路由器脚本文件编辑更新器
  14. Linux:it is too simplistic/systematic解决办法~
  15. 保护视力方面的电脑设定
  16. 【C语言】----找出100以内的所有质数(素数),并且输出前十个
  17. POJ - 3264
  18. 紫光软件php面试题,紫光展锐面试试题是什么?紫光展锐怎么面试的?
  19. static修饰符和final修饰符
  20. Html help安装步骤,Doxgen+Graphiz+htmlhelp配置

热门文章

  1. 在win server 2003上安装SQL Server 2008的步骤
  2. InstallShield 杀掉进程
  3. Timus 1114. Boxes
  4. 城市运行一网统管_【宣传活动】持续开展城市运行“一网统管”建设宣传活动...
  5. 如何用python生成可执行程序必须经过_python怎么生成可执行文件
  6. python帮助文档在哪_python文档在哪里
  7. 485串口测试工具软件下载_串口调试助手详细讲解(结合实操),通讯问题不再是问题...
  8. 最新php常用函数200个,180多个PHP常用函数总结
  9. [转载] 2020最新Java面试题,常见面试题及答案汇总
  10. markdown 流程图_测试了12款Markdown编辑器,推荐一个最好用的!