简介:

自己复习C语言的时候总结了一下格式化输入输出占位符,以及各种变量的占用字节数,还有没提到的后面慢慢补充。(第一次学着发博客总结^-^,也可以帮助自己后续回顾)

部分变量类型及占用字节数:

(C头文件limits.h和float.h分别提供了与整数类型和浮点类型大小限制相关的详细信息)

c主要有以下几种变量,还有指针变量等等,对于占用字节数依据编译器不同,以及操作系统不同,得到的结果可能不同,本结果在Microsoft Visual Studio 2019 的32位及64位操作系统下得到。

c语言占用字节
系统类型 32位 64位 16位
char(存储为int) 1 1 1
short int 2 2 2
int 4 4 2
long 4 4  
long long 8 8  
一般情况下windows64位一般使用LLP64模型
无符号与有符号占用字节数相同
float 4(默认6位精度) 4(默认6位精度)  
double 8 8  
long double 8 8(依据编译器不同,C99只规定大于等于double)
_Complex 复数的实部与虚部都基于实浮点类型构成
_Imaginary

不同编译器的数据模型不同,导致long int占用4个字节或8个字节,本身C语言规定的是long≥int。不同编译器的结果参考如下:

编译器的数据模型
此处参考原文链接:64位操作系统下,关于int和long占用字节数同为4问题_静叶沉浮-CSDN博客_64位系统long

Datetype  LP64   ILP64   LLP64   ILP32    LP32

char            1          1           1           1           1

short           2          2           2           2           2

int               4          8           4           4           2

long            8          8           4           4           4

long long    8

pointer        8          8           8           8           8
一般情况下windows64位一般使用LLP64模型
64位Unix,Linux使用的是LP64模型

格式化输入输出占位符归纳:

此处仅归纳了部分变量的占位符,以及一些函数,例如sizeof的占位符:

针对整型int变量以及浮点型float采用以下代码测试其占用字节数:

#include <stdio.h>
int main(void)
{short a = 1;int b = 2;long c = 3;long long d = 4;unsigned short e = 5;unsigned f = 6;unsigned long g = 7;unsigned long long h = 8;long double k = 1.0;double m = 9.0;printf("The signed type occupy %zd, %zd, %zd, %zd bytes respectively.\n", sizeof(a), sizeof(b), sizeof(c), sizeof(d));printf("The unsigned type occupy %zd, %zd, %zd, %zd bytes respectively.\n", sizeof(e), sizeof(f), sizeof(g), sizeof(h));printf("long double: %zd, double: %zd", sizeof(k), sizeof(m));return 0;}

64位和32位编译器下的输出相同:
The signed type occupy 2, 4, 4, 8 bytes respectively.
The unsigned type occupy 2, 4, 4, 8 bytes respectively.
long double: 8, double: 8

sizeof( )函数:
sizeof函数在32位操作系统下,返回数据类型为long int,64位系统下返回为long long类型,因此占位符分别用%ld,%lld。C99和C11标准提供了%zd转换说明用以匹配sizeof返回类型。因此大部分情况下都可使用%zd,而且对于strlen()同样适用。

在C primer plus中还讲到了printf()中的一些其他转换修饰符:

先归纳到这儿吧,太久没打过代码TAT

C语言占位符及各种变量占用字节数相关推荐

  1. c语言英文字母占用字节数,字符型变量占用字节数 c语言里字符型数据占多少字节...

    一个字符型变量所占内存的字节数是一个字符型变量所占内存的字节数是 1个字节. 字符与字符型变量有什么区别,都占几个字节 (一)"字节"的定义 字节(Byte)是一种计量单位,表示数 ...

  2. c语言格式占位符可以不用吗,C语言占位符(待完善)

    %c 读入一个字符 %s 读入一个字符串,遇到空格制表符或者换行符时结束. %d 读入一个十进制整数 %x或者%X   读入一个十六进制整数(读出时,%x:小写,%X:大写) %o   读入一个八进制 ...

  3. c语言结构体变量所占字节计算,【C语言】结构体占用字节数及存储与空间分配...

    我们都知道在数据类型中,char类型占1个字节,short占2个字节,int占4个字节,long占8个字节等等. 在计算结构体大小时需要考虑其内存布局,结构体在内存中存放是按单元存放的,每个单元多大取 ...

  4. java中double类型占几个字节_java中各种数据类型占用字节数

    1字节(Byte)=8bit java的基本类型 类型 所占字节 byte 1 short 2 int 4 long 8 float 4 double 8 char 2 String中字母和汉字所占字 ...

  5. 音频采样率、采样深度、占用字节数浅析

    1.从一个问题来看,16K采样率.16bit采样深度.20ms的数据共占用多少字节? 想要解这个问题,首先就要明白采样率是什么,它的单位是什么? 采样率,就是指音频在每秒的采样次数(采样多少个点),单 ...

  6. Go语言占位符的使用

    # 定义示例类型和变量 type Human struct {Name string }var people = Human{Name:"zhangsan"} 普通占位符 占位符 ...

  7. C语言占位符 格式占位符

    常用占位符: %d, %i------代表整数,%f------浮点数,%s------字符串,%c------char. %p------指针,%fL------长log,%e------科学计数法 ...

  8. C语言——占位符【标志字符】

    目录: 一:定义 二:占位符的种类和意义 三:实例 一:定义 占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号,广泛用于计算机中各类文档的编辑 格式占位符(%)是在C/C++语言中格式输入 ...

  9. C语言占位符及printf格式说明

    1.首先说一下什么是占位符,大家看到的%d.%f等都是占位符,简单来说就是每种数据类型对应相关的占位符. 2.占位符有哪写? %d //以十进制整型格式 %i //以十进制整型格式 %ld //以十进 ...

最新文章

  1. Mac OS X 10.8.X编译Android4.2.X源码不生成emulator的问题
  2. 将公用文件夹从Exchange2010迁移到 Exchange 2013
  3. 每周论文清单:高质量文本生成,多模态情感分析,还有一大波GAN | PaperDaily #26
  4. mysql锁表和解锁语句
  5. python----iter\next
  6. C语言创建顺序表并插入元素 详细注释
  7. javaweb开发后端常用技术_Java Web开发后端常用技术汇总
  8. NYOJ--22--素数求和问题
  9. (转)AppDomain 和动态加载
  10. Linux异步IO【转】
  11. npm依赖管理:冗余,依赖树
  12. openssl 升级
  13. 图扑软件数字孪生 | 基于 BIM 技术的可视化管理系统
  14. charles 的安装和手机配置 (我用的win7系统 ,和 iphone8 的配置)
  15. Word中无法插入公式的解决方案
  16. Node.js进阶基础技能—Koa基本使用
  17. c语言素数筛法与分解素因数,质因数分解及代码:
  18. 【51单片机】AT24C02存储器(I²C总线)/DS18B20温度传感器(单总线)
  19. 转载,python处理excel转换成xml文件
  20. mysql主备有几种方式,mysql 主备 主从 主主模式介绍

热门文章

  1. [C# 反射] Type 格式化FullName
  2. JS 获取url参数
  3. iOS复选框——高雅的BEMCheckBox
  4. 纵享丝滑滑动切换的周月日历,水滴效果,丰富自定义日历样式,仿小米日历(ViewDragHelper实现)...
  5. 以太坊源码阅读2——RLP编码
  6. 一个婚外情男人的私密日记
  7. Java 并发控制实例 (银行问题取钱存钱)
  8. 高端护肤品牌兰芝研究所举办视黄醇国际学术研讨会
  9. 用户画像的设计、开发与应用
  10. 荣耀V10手机如何在非华为电脑上实现“多屏协同”?