1.sizeof的使用:sizeof操作符以字节形式给出了其操作数的存储大小.

  sizeof操作符不能用于函数类型,不全然类型或位字段。不全然类型指具有未知存储大小的数据类型,如未知存储大小的数组类型、未知内容的结构或联合类型、void类型等。

  2.sizeof的结果:sizeof操作符的结果类型是size_t,它在头文件里typedef为unsigned int类型。

该类型保证能容纳实现所建立的最大对象的字节大小。

  int、unsigned int 、short int、unsigned short 、long int 、unsigned long 、float、double、long double类型的sizeof 在ANSI C中没有详细规定,大小依赖于实现。一般可能分别为2、2、2、2、4、4、4、8、10。

  当操作数是指针时,sizeof依赖于编译器。near类指针字节数为2,far、huge类指针字节数为4。一般Unix的指针字节数为4。

  当操作数具有数组类型时。其结果是数组的总字节数,联合类型操作数的sizeof是其最大字节成员的字节数。

  结构类型操作数的sizeof是这样的类型对象的总字节数,包含不论什么垫补在内.

  假设操作数是函数中的数组形參或函数类型的形參,sizeof给出其指针的大小。

  struct MyStruct

  {

  char dda;//偏移量为0,满足对齐方式,dda占用1个字节;

  double dda1;//下一个可用的地址的偏移量为1,不是sizeof(double)=8

  //的倍数,须要补足7个字节才干使偏移量变为8(满足对齐

  //方式),因此VC自己主动填充7个字节。dda1存放在偏移量为8

  //的地址上。它占用8个字节。

  int type;//下一个可用的地址的偏移量为16,是sizeof(int)=4的倍

  //数,满足int的对齐方式,所以不须要VC自己主动填充,type存

  //放在偏移量为16的地址上,它占用4个字节。

  };//全部成员变量都分配了空间空间总的大小为1+7+8+4=20。不是结构

  //的节边界数(即结构中占用最大空间的类型所占用的字节数sizeof

  //(double)=8)的倍数。所以须要填充4个字节。以满足结构的大小为

  //sizeof(double)=8的倍数

  所以该结构总的大小为:sizeof(MyStruc)为1+7+8+4+4=24。当中总的有7+4=11个字节是VC自己主动填充的,没有放不论什么有意义的东西.

sizeof()函数的使用——————【Badboy】的更多相关文章

  1. C语言中的sizeof函数总结

    sizeof函数的结果: 变量:变量所占的字节数. ; printf( 数组:数组所占的字节数. ,,,,}; ] = {,,,,}; printf("size_arr1=%d\n" ...

  2. 数据类型、位运算、sizeof()函数

    数据精度,依次升高.(负数必须使用有符号类型) 不同精度的数据间运算,所得结果为高精度类型. 数据类型详细信息如下图: 整型数据的数制:十进制(32).八进制(032,以0开头).十六进制(0x32, ...

  3. C sizeof函数

    #include<stdio.h> int main() { struct stu { union { ]; ]; } cls; ]; float cj; } xc; printf(&qu ...

  4. PHP sizeof() 函数

    实例 返回数组中元素的数目: <?php$cars=array("Volvo","BMW","Toyota");echo sizeof ...

  5. sizeof()函数求各类型变量所占空间的方法

    #include "stdafx.h" #include <iostream> using namespace std; ]) { cout<<sizeof ...

  6. CC++中sizeof函数的用法

    C/C++中sizeof()函数的用法 学习C/C++有时会遇到下面的情况: 已知 char *str1="absde"; char str2[]="absde" ...

  7. C语言内存分配函数malloc——————【Badboy】

    C语言中经常使用的内存分配函数有malloc.calloc和realloc等三个,当中.最经常使用的肯定是malloc,这里简单说一下这三者的差别和联系. 1.声明 这三个函数都在stdlib.h库文 ...

  8. C/C++ sizeof函数解析——解决sizeof求结构体大小的问题

    C/C++中不同数据类型所占用的内存大小 32位                 64位 char               1                    1 int           ...

  9. C语言中sizeof、strlen函数的部分理解

    一.测试环境 Win10 + Visual Studio 2017 二.测试代码 #include "pch.h" #include <iostream> #inclu ...

随机推荐

  1. c# 与java base64 不一致解决方案

    不一致的问题不是编码的问题  而是json字符串的问题通常我们会json 嵌套  我们先来看连个字符串 {"contentType":"","http ...

  2. hdoj 2795 Billboard 【线段树 单点更新 + 维护区间最大值】

    Billboard Time Limit: 20000/8000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  3. awesome-free-software

    Free software is distributed under terms that allow users to run the program for any purpose, study ...

  4. 搭建简单的Habernate环境(一)

    一.开篇 下载Habernate所需要的jar包和mysql驱动. 二.建立java项目并且导入所需要的包 三.建立实体类和配置映射文件 user实体类 package testPackage; pu ...

  5. 利用jqueryzoom实现图片放大镜效果

    在你的页面中包含 jqzoom.css <link rel="stylesheet" href="your_path/jqzoom.css" type=& ...

  6. JavaScript DOM编程艺术(第2版)学习笔记1(1~4章)

    第一章 一些基本概念 HTML(超文本标记语言),构建网页的静态结构,由一系列的DOM组成: CSS(层叠样式表),给网页各部分结构添加样式: JavaScript,通过获取DOM给静态结构加上动作, ...

  7. vue-cli搭建项目结构及引用bootstrap

    vue-cli脚手架工具快速构建项目架构: 1.首先默认了有已经安装了node,然后依次执行以下命令: npm install -g vue-cli                   全局安装vue ...

  8. jmeter的认识

    jmeter JMeter是Apache组织开发的开源项目,设计之初是用于做性能测试的,同时它在实现对各种接口的调用方面做的比较成熟,因此,常被用做接口功能测试和性能测试. 它能够很好的支持各种常见接 ...

  9. Android中onActivityResult()获取返回值

    需求:从FirstActivity跳到SecondActivity,在SecondActivity中进行了操作并返回到FirstActivity. FirstActivity中的主要代码: priva ...

  10. Javascript常用字符串判断函数

    [代码] 字符串,函数,Javascript,脚本100 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ...