`
beckshanling
  • 浏览: 256651 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

sizeof的使用

    博客分类:
  • C++
阅读更多

第一个例子:

char* ss = "0123456789";
sizeof(ss) 结果 4 ===》ss是指向字符串常量的字符指针
sizeof(*ss) 结果 1 ===》*ss是第一个字符

char ss[] = "0123456789";
sizeof(ss) 结果 11 ===》ss是数组,计算到\0位置,因此是10+1
sizeof(*ss) 结果 1 ===》*ss是第一个字符

char ss[100] = "0123456789";
sizeof(ss) 结果是100 ===》ss表示在内存中的大小 100×1
strlen(ss) 结果是10 ===》strlen是个函数内部实现是用一个循环计算到\0为止之前

int ss[100] = "0123456789";
sizeof(ss) 结果 400 ===》ss表示再内存中的大小 100×4
strlen(ss) 错误 ===》strlen的参数只能是char* 且必须是以''\0''结尾的

char q[]="abc";
char p[]="a\n";
sizeof(q),sizeof(p),strlen(q),strlen(p);
结果是 4 3 3 2      

第二个例子:

class X
{
int i;
int j;
char k;
};
X x;
cout<<sizeof(X)<<endl; 结果 12 ===》内存补齐
cout<<sizeof(x)<<endl; 结果 12 同上

总结:
A. 参数为数据类型或者为一般变量。例如sizeof(int),sizeof(long)等等。这种情况要注意的是不同系统系统或者不
同编译器得到的结果可能是不同的。


B. 参数为数组或指针。下面举例说明.

int a[50]; //sizeof(a)=4*50=200; 求数组所占的空间大小
int *a=new int[50];// sizeof(a)=4; a为一个指针,sizeof(a)是求指针



C. 参数为结构或类。Sizeof应用在类和结构的处理情况是相同的。但有两点需要注意:
第一、结构或者类中的静态成员不对结构或者类的大小产生影响,因为静态变量的存储位置与结构或者类的实例地址无
关。

第二、没有成员变量的结构或类的大小为1

,因为必须保证结构或类的每一个实例在内存中都有唯一的地址。

下面举例说明,

Class Test{
             int a;
             static double c};//sizeof(Test)=4.

    Test *s;//sizeof(s)=4,s为一个指针。

    Class test1{ };//sizeof(test1)=1;


分享到:
评论

相关推荐

    sizeof 使用分析.doc

    sizeof使用的多种情况和例子,讲解比较详细,蛮实用的

    sizeof使用说明

    sizeof使用说明

    C++sizeof使用规则及陷阱分析

    主要讲解了sizeof的概念,以及各种情况下使用的方法,还有使用sizeof容易错误的地方,希望对大家有所帮助

    sizeof函数使用注意事项

    关于c/c++函数中sizeof的使用,以及使用过程中的一下细节注意

    C++ sizeof 使用规则及陷阱分析

    cout&lt;&lt;sizeof(s1); // 24 cout&lt;&lt;sizeof(s2); // 16 同样是两个char类型,一个int类型,一个double类型,但是因为对界问题,导致他们的大小不同。计算结构体大小可以采用元素摆放法,我举例子说明一下:首先,CPU...

    深入sizeof的使用详解

    经常在C下编程,不了解精通sizeof就有点说不过去了,本文可... 二、sizeof的使用方法1、用于数据类型 sizeof使用形式:sizeof(type) 数据类型必须用括号括住。如sizeof(int),还有sizeof int ,或sizeof(variabl

    sizeof使用描述

    sizeof: C语言的一种单目操作符, 不是函数; sizeof操作符以字节形式给出了其操作数的存储大小, 操作数可以是一个表达式或是括在括号内的类型名. 操作数的存储大小由操作数的类型决定;

    sizeof()的简单介绍

     sizeof使用形式:sizeof(type) ,如sizeof(int) 2、用于变量  sizeof使用形式:sizeof(var_name)或sizeof var_name  变量名可以不用括号括住。如sizeof (var_name),sizeof var_name等都是正确形式。带...

    C语言中的sizeof使用方法.pdf

    。。。

    C语言中的sizeof使用方法.docx

    。。。

    C语言函数sizeof

     sizeof使用形式:sizeof(type)   数据类型必须用括号括住。如sizeof(int)。   2、用于变量   sizeof使用形式:sizeof(var_name)或sizeof var_name   变量名可以不用括号括住。如sizeof (var_...

    详细讲解sizeof的使用

    讲解sizeof的使用,以及使用时容易遇到的一些常见问题。

    MFC源代码 SIZEOF.02

    MFC源代码 SIZEOF.02MFC源代码 SIZEOF.02MFC源代码 SIZEOF.02MFC源代码 SIZEOF.02MFC源代码 SIZEOF.02MFC源代码 SIZEOF.02MFC源代码 SIZEOF.02MFC源代码 SIZEOF.02MFC源代码 SIZEOF.02MFC源代码 SIZEOF.02MFC源代码 ...

    C++ sizeof 实例解析

    sizeof使用形式有三种:sizeof(var_name)或sizeof var_name或sizeof(var_type)。【例1】:(列子中忽略构造及析构函数) 代码如下:class A { public: void hello(){} }; sizeof(A)= 1;肯定不是零。举个反例,...

    个人整理sizeof()用法汇总

    个人整理sizeof()用法汇总 sizeof()用法汇总 sizeof()功能:计算数据空间的字节数 1.与strlen()比较 strlen()计算字符数组... 注意:数组做型参时,数组名称当作指针使用!! void fun(char p[]) {sizeof(p)等于4}

    sizeof运算符的使用,自增和自减运算符的使用

    sizeof运算符的使用,自增和自减运算符的使用,显示自增自减运算符对3作用时得到的值,显示自增自减运算符对3作用后得到的值

    解析C语言中的sizeof.rar

    析Sizeof的用途

    sizeof运算符的使用

    定义短整型变量定义整型变量 定义长整型变量 定义字符型变量 定义浮点型变量

    strlen 和 sizeof 的使用

    strlen和sizeof的区别 strlen 和 sizeof 的使用

Global site tag (gtag.js) - Google Analytics