C语言中sizeof()的用法
2024-08-30 16:20:36
语法
sizeof有三种语法形式:
1、sizeof(object); //sizeof(对象);
2、sizeof(type_name); //sizeof(类型);
3、sizeof object; //sizeof 对象;
一、基本数据类型的sizeof
等于各数据类型在内存中所占的字节数。这里的基本数据类型指的是short、int、long、float等简单的内置数据类型,由于它们和系统相关,所以取值在不同系统下可能会不同,可移植性较差。
如:
#include <stdio.h>
int main()
{
int a = sizeof(char);
int b = sizeof(short);
int c = sizeof(int);
int d = sizeof(long);
printf("char 长度是 %d 个字节 \n", a);
printf("short 长度是 %d 个字节 \n", b);
printf("int 长度是 %d 个字节 \n", c);
printf("long 长度是 %d 个字节 \n", d);
return 0;
}
运行结果为:
13:55:58 > char 长度是 1 个字节
13:55:58 > short 长度是 2 个字节
13:55:58 > int 长度是 4 个字节
13:55:58 > long 长度是 4 个字节
二、指针变量的sizeof
等于计算机内部地址总线的宽度。所以在32位计算机中,一个指针变量的返回值必定是4(注意结果是以字节为单位)。
指针变量的sizeof值与指着所指的对象没有任何关系。
三、数组的sizeof
数组的sizeof值等于数组所占用的内存字节数,如:
char a1[] = "abc";
int a2[3];
sizeof( a1 ); // 结果为4,字符 末尾还存在一个NULL终止符
sizeof( a2 ); // 结果为3*4=12(依赖于int,int4个字节)
//sizeof当作了求数组元素的个数是不对的,求数组元素的个数写法为:
// 总长度/单个元素的长度
int c2 = sizeof( a1 ) / sizeof( a1[0] ); // 总长度/第一个元素的长度.注意数组名做函数参数传递时退化为指针。
四、结构体的sizeof
struct S1{
char c;
int i;
};
sizeof的结果等于对象或者类型所占的内存字节数。
声明:本文参考转载自C语言中sizeof的用法 (oh100.com)
最新文章
- Spring 资源文件处理
- 浅谈ASM中的SLB
- 【转】Apache Digest验证
- cocos2dx 入门
- 关于iOS和OS X废弃的API知识点
- Kmeans方法
- Careercup 论坛上较有意思的题目整理
- oracle 创建修改 job
- c 语言结构体struct的三种定义方式 及 typedef
- Canvas scale- 缩放
- wpf创建用户控件(计时器控件)
- HTML 练习滑动
- ModuleNotFoundError: No module named &#39;_sqlite3&#39; -- python2.7 问题
- 11.sklearn中的朴素贝叶斯模型及其应用
- Spring MVC 使用介绍(二)—— DispatcherServlet
- sqlserver触发器insert,delete,update
- Redis密码设置与访问限制
- 搭建中小规模集群之rsync数据同步备份
- Qt 4.6.2静态编译后,创建工程出现中文乱码的解决办法
- Python套接字编程(1)——socket模块与套接字编程