第一个例子:
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使用的多种情况和例子,讲解比较详细,蛮实用的
sizeof使用说明
主要讲解了sizeof的概念,以及各种情况下使用的方法,还有使用sizeof容易错误的地方,希望对大家有所帮助
关于c/c++函数中sizeof的使用,以及使用过程中的一下细节注意
cout<<sizeof(s1); // 24 cout<<sizeof(s2); // 16 同样是两个char类型,一个int类型,一个double类型,但是因为对界问题,导致他们的大小不同。计算结构体大小可以采用元素摆放法,我举例子说明一下:首先,CPU...
经常在C下编程,不了解精通sizeof就有点说不过去了,本文可... 二、sizeof的使用方法1、用于数据类型 sizeof使用形式:sizeof(type) 数据类型必须用括号括住。如sizeof(int),还有sizeof int ,或sizeof(variabl
sizeof: C语言的一种单目操作符, 不是函数; sizeof操作符以字节形式给出了其操作数的存储大小, 操作数可以是一个表达式或是括在括号内的类型名. 操作数的存储大小由操作数的类型决定;
sizeof使用形式:sizeof(type) ,如sizeof(int) 2、用于变量 sizeof使用形式:sizeof(var_name)或sizeof var_name 变量名可以不用括号括住。如sizeof (var_name),sizeof var_name等都是正确形式。带...
。。。
。。。
sizeof使用形式:sizeof(type) 数据类型必须用括号括住。如sizeof(int)。 2、用于变量 sizeof使用形式:sizeof(var_name)或sizeof var_name 变量名可以不用括号括住。如sizeof (var_...
讲解sizeof的使用,以及使用时容易遇到的一些常见问题。
MFC源代码 SIZEOF.02MFC源代码 SIZEOF.02MFC源代码 SIZEOF.02MFC源代码 SIZEOF.02MFC源代码 SIZEOF.02MFC源代码 SIZEOF.02MFC源代码 SIZEOF.02MFC源代码 SIZEOF.02MFC源代码 SIZEOF.02MFC源代码 SIZEOF.02MFC源代码 ...
sizeof使用形式有三种:sizeof(var_name)或sizeof var_name或sizeof(var_type)。【例1】:(列子中忽略构造及析构函数) 代码如下:class A { public: void hello(){} }; sizeof(A)= 1;肯定不是零。举个反例,...
个人整理sizeof()用法汇总 sizeof()用法汇总 sizeof()功能:计算数据空间的字节数 1.与strlen()比较 strlen()计算字符数组... 注意:数组做型参时,数组名称当作指针使用!! void fun(char p[]) {sizeof(p)等于4}
sizeof运算符的使用,自增和自减运算符的使用,显示自增自减运算符对3作用时得到的值,显示自增自减运算符对3作用后得到的值
析Sizeof的用途
定义短整型变量定义整型变量 定义长整型变量 定义字符型变量 定义浮点型变量
strlen和sizeof的区别 strlen 和 sizeof 的使用