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

#include "stdafx.h"
#include <iostream>
using namespace std;

void func(char str[100])
{
    cout<<sizeof(str)<<endl;
}

int  main()
{
    char str[100];
    func(str);    //str传入函数做参数,做sizeof运算时被当做指针 返回4
    cout<<sizeof(str)<<endl;    //返回整个数组占用的内存空间 100*1
    int str1[100];
    cout<<sizeof(str1)<<endl;    //返回100*4

    char str2[]="hello";
    cout<<sizeof(str2)<<endl;    //6
    char *p=str;
    cout<<sizeof(p)<<endl;    //32位WinNT平台下指针都是4字节
    cout<<sizeof(*p)<<endl;//char型字符  返回1

    void *p11=malloc(100);
    cout<<sizeof(p11)<<endl;//指针  返回4
    return 0;
}

时间: 2024-10-14 03:25:26

sizeof()函数求各类型变量所占空间的方法的相关文章

不用sizeof()函数求当前主机上的一个int占用几个字节

1)宏定义实现:    #define MySizeof(Value) (char*)(&Value + 1) - (char*)&Value    (char*)&Value返回Value的地址的第一个字节, (char*)(&Value + 1)返回的是Value的地址的下一个地址的第一个字节 #include <iostream> using namespace std; #define my_sizeof(L_Value) (char* )(&L

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

C/C++中不同数据类型所占用的内存大小 32位                 64位 char               1                    1 int                  4             大多数4,少数8 short              2                    2 long               4                    8 float               4              

sizeof函数详解

原文链接http://blog.csdn.net/wzy198852/article/details/7246836 sizeof,一个其貌不扬的家伙,引无数菜鸟竟折腰,小虾我当初也没少犯迷糊,秉着“辛苦我一个,幸福千万人”的伟大思想,我决定将其尽可能详细的总结一下.但当我总结的时候才发现,这个问题既可以简单,又可以复杂,所以本文有的地方并不适合初学者,甚至都没有必要大作文章.但如果你想“知其然,更知其所以然”的话,那么这篇文章对你或许有所帮助.菜鸟我对C++的掌握尚未深入,其中不乏错误,欢迎各

C语言 sizeof函数详解

1. 定义:sizeof是何方神圣sizeof乃C/C++中的一个操作符(operator)是也,简单的说其作用就是返回一个对象或者类型所占的内存字节数.MSDN上的解释为:The sizeof keyword gives the amount of storage, in bytes, associated with avariable or a type (including aggregate types). This keyword returns a value of type siz

CC++中sizeof函数的用法

C/C++中sizeof()函数的用法 学习C/C++有时会遇到下面的情况: 已知 char *str1="absde"; char str2[]="absde"; char str3[8]={'a'}; char str4 [] = "0123456789"; 为什么sizeof(str1)=4 sizeof(str2)=6; sizeof(str3)=8; sizeof(str4)=11;呢? 丈二和尚摸不着头脑,接下来我们一起好好讨论讨论,

SIZEOF函数使用

参考  http://blog.csdn.net/wzy198852/article/details/7246836 1.语法 sizeof有三种语法形式,如下:1) sizeof( object ); // sizeof( 对象 );2) sizeof( type_name ); // sizeof( 类型 );3) sizeof object; // sizeof 对象; 2.计算 1)计算求值 sizeof(2) = sizeof(int); sizeof(2.22) = sizeof(d

sizeof函数总结

sizeof函数功能:计算数据空间的字节数 1.与strlen()比较 strlen计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组元素. sizeof计算数据(包括数组.变量.类型.结构体等)所占内存空间,用字节数表示(当然用在字符数组计算"\0"的大小). 2.指针与静态数组的sizeof操作 指针均可看为变量类型的一种.所有指针变量的sizeof 操作结果均为4. 实例1::char *p; sizeof(p)=4; sizeof(*p) =

【C++】sizeof()函数解析

[1] 常见数据类型的的sizeof函数得出的值表 char int short long float double 指针 32 bit 1 4 2 4 4 8 4 64 bit 1 4 or 8 2 8 4 8 8 [2] 数组求sizeof 的值 数组的大小 = 数组中元素的个数 x 该类型的大小 [3] union 求 sizeof 的值 由于 union 中存在复写现象,union 结构的 sizeof 的值即为 union 中最大的元素的大小.例如: union student{   

sizeof()函数的使用——————【Badboy】

1.sizeof的使用:sizeof操作符以字节形式给出了其操作数的存储大小. sizeof操作符不能用于函数类型,不完全类型或位字段.不完全类型指具有未知存储大小的数据类型,如未知存储大小的数组类型.未知内容的结构或联合类型.void类型等. 2.sizeof的结果:sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型.该类型保证能容纳实现所建立的最大对象的字节大小. int.unsigned int .short int.unsigned sh