sizeof详解

***************************************************

更多精彩,欢迎进入:http://shop115376623.taobao.com

***************************************************


sizeof()功能:计算数据空间的字节数

#include<iostream.h>

#include<stdio.h>

#include<string.h>

using namespace std;


struct

{

short a1; //short占2字节

short a2;

short a3;

} A;

cout<<sizeof(A)<<"  ";//==6  三个类型一样,所以为2*3=6


struct

{

long a1; //long占4字节

short a2;//short占2字节

} B;

cout<<sizeof(B)<<"  ";//==8  short被对齐为和long一样长,所以为4+4=8


int main()

{

char *ss1= "0123456789";

cout<<sizeof(ss1)<<"  "; //==4 ss1为一个字符指针,指针大小是个定值,就是4个字节

//拓展:

float *p ; 或double *p ;      cout<<sizeof(p);  结果为4


charss2[] = "0123456789";

cout<<sizeof(ss2)<<"  ";//==11 ss2为字符数组,故为求整个字符数组的大小

//注意两个的区别,一个是指针,一个是字符数组,故sizeof的作用对象不同


charss3[100] = "0123456789";

cout<<sizeof(ss3)<<"  ";//==100 这个字符数组开始预分配了100个字节。char占用一个字节


intss4[100];

cout<<sizeof(ss4)<<"  ";//==400  每个整形变量占空间4,所以4*100=400


charq1[] = "abc";

cout<<sizeof(q1)<<"  ";//==4 与ss2类似,注意字符数组后面还有个结束字符


charq2[] = "a\n";

cout<<sizeof(q2)<<"  ";//==3  /n为一个字节,整个占3字节


char *q3= "a\n";

cout<<sizeof(q3)<<"  ";//==4  q3为指针


char *str1 = (char *)malloc(100);

cout<<sizeof(str1)<<"  ";//指针所以为4


void *str2= (void *) malloc(100);

cout<<sizeof(str2)<<"  ";//指针所以为4

return 0;

}

说明:

在默认情况下,为了方便对结构体内元素的访问和管理,当结构体内的元素长度都小于处理器的位数的时候,便以结构体里面最长的数据元素为对其单位,也就是说,结构体的长度是最长数据元素的整数倍。

如果结构体内存在长度大于处理器位数的元素,那么就以处理器的位数为对齐单位

double 8 

float 4

int 4

long 4 

char 1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/459108.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于C/C++中的“auto”关键字

C/C 98标准 C03标准 早在C98标准中就存在了auto关键字&#xff0c;那时的auto用于声明变量为自动变量&#xff0c;自动变量意为拥有自动的生命期。此用法是多余的&#xff0c;因为即使定义变量时不加"auto"&#xff0c;变量也会有自动的生命期。用法如下&#xff1a;…

学java的人都是什么性格_什么样的人适合学习Java编程

展开全部下面咱们说一下Java更适合那些人群第一种&#xff0c;理工科专业。如果你大学时学的是理工科专业&#xff0c;对Java有一定的了解&#xff0c;那么你还是比较适合学Java的&#xff0c;如果你大学期间学过Java那就更好了&#xff0c;现在再学习只会事半功倍。因为学习Ja…

C++浅拷贝和深拷贝的区别

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** c默认的拷贝构造函数是浅拷贝 浅拷贝就是对象的数据成员之间的简单赋值&#xff0c; 如…

Innodb ibdata数据文件误删,如何恢复

Innodb的ibdata数据文件误删除后的操作流程&#xff1a;注意&#xff1a;误删除后&#xff0c;你的数据库是还可以工作的&#xff0c;数据照样可以写入&#xff0c;切记&#xff0c;千万不要把mysqld进程杀死&#xff0c;否则就没法挽救了。首先找到mysqld的进程pid&#xff0c…

redis的java客户端名称_java里常用的redis客户端简介

zepto返回顶部动画点击返回顶部 function goTop(acceleration, time) { acceleration acceleration || 0.1; time time || 16; v ...Jetty Maven Plugin配置官方文档:http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#maven-config-https 1 ...p…

Python初步

准备在工作之余看看Python的东西 收录一些资料 Python初学者&#xff08;零基础学习Python、Python入门&#xff09;常见问题&#xff1a;书籍推荐、资料、社区 http://blog.csdn.net/xiaowanggedege/article/details/8566606 小甲鱼零基础入门学习Python(全87集) http://pan.b…

java arraylist string_在Java ArrayList String中使用contains

你是对的。 ArrayList.contains()testingequals()&#xff0c;而不是对象标识&#xff1a;返回true当且仅当此列表包含至less一个元素e&#xff0c;使得(o null&#xff1f;e null&#xff1a;o.equals(e))如果你有一个NullPointerExceptionexception&#xff0c;请validatio…

Xcode7,ios9 issue ,warning合集

1.Downcast from UIViewController only unwraps optionals;did you mean to use!? 原&#xff1a; let view mainStory.instantiateInitialViewController() as! UIViewController window?.rootViewController view 修改&#xff1a; if let view mainStory.instantiate…

高中数学排列组合公式/排列组合计算公式

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** 排列 P------和顺序有关 组合 C -------不牵涉到顺序的问题 排列分顺序,组合不分 例如…

矩阵快速幂 POJ 3070 Fibonacci

题目传送门 1 /*2 矩阵快速幂&#xff1a;求第n项的Fibonacci数&#xff0c;转置矩阵都给出&#xff0c;套个模板就可以了。效率很高啊3 */4 #include <cstdio>5 #include <algorithm>6 #include <cstring>7 #include <cmath>8 using namespace st…

java 接口和抽象类的区别6_JAVA基础篇-接口和抽象类的区别

.前言JAVA是一种面向对象语言,具备抽象(Abstract),封装(packing),继承(extends),多态(polymorphic)四大特性。我们重点从oop思想∠来分析。.在面向对象的四大特性的作用体现抽象:父类为子类提供一些属性和行为&#xff0c;子类根据业务需求实现具体的行为(这时抽象类派上了用场…

笔试常见的智力题(附答案)

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** A.逻辑推理 1、你让工人为你工作7天&#xff0c;给工人的回报是一根金条。金条…

Compile a native C Android application

2019独角兽企业重金招聘Python工程师标准>>> http://www.cnblogs.com/GoAhead/p/4186707.html 通过上网搜索&#xff0c;你可以发现很多种编译Android native应用的方法&#xff0e;我想说的是&#xff0c;不同的控制台应用, 守护程序(daemon), C/C库&#xff0c;等…

could not build module ‘Foundation’, could not build module ‘UIKit’……23个错误

pch文件加入 #import <Availability.h> #ifndef __IPHONE_3_0 #warning "This project uses features only available in iOS SDK 3.0 and later." #endif #ifdef __OBJC__ #import <UIKit/UIKit.h> #import <Foundation/Foundation.h> 转载于:htt…

java中钩子函数回调函数_钩子函数 和回调函数

标签&#xff1a;http://blog.csdn.net/lipeionline/article/details/6369657 转自也可以这样&#xff0c;更容易理解&#xff1a;回调函数就好像是一个中断处理函数&#xff0c;系统在符合你设定的条件时自动调用。为此&#xff0c;你需要做三件事&#xff1a;1. 声明&…

css3 定义选择器

引言&#xff1a;CSS样式规则有两个主要部分。选择器决定将格式化应用到哪些元素。声明则定义要应用的格式化。 构造选择器选择器可以定义五个不同的标准来选择要进行格式化的元素。 元素的类型或者名称。如下所示。 h1{color:red; } 元素所在的上下文。如下所示。 h1 em{color…

J2SE核心实战开发—— 集合类框架

文档都是基于 实验楼 线上环境制作的&#xff0c;因此文档叙述和截图均与其有关。使用其他实验环境也没有太大影响&#xff0c;知识点的操作是类似的。该系列的课程是在 实验楼 实习所原创的第一个课程&#xff0c;欢迎大家多提意见。 一、实验简介 在Java基础语法中&#xff0…

猫和老鼠java下载安装_tomcat(Java服务器)

Tomcat(Java服务器工具)是一款十分优质的Java服务器软件。在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;是开发和调试JSP 程序的首选。对于一个初学者来说&#xff0c;可以这样认为&#xff0c;当在一台机器上配置好Apache 服务器&#xff0c;可利用它响应…

管道通信

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** 什么是管道&#xff1f; 管道是单向的、先进先出的&#xff0c;它把一个进程的输出和另…

Linux 终端下 dstat 监控工具

dstat 是一个可以取代vmstat&#xff0c;iostat&#xff0c;netstat和ifstat这些命令的多功能产品。dstat克服了这些命令的局限并增加了一些另外的功能&#xff0c;增加了监控项&#xff0c;也变得更灵活了。dstat可以很方便监控系统运行状况并用于基准测试和排除故障。dstat可…