sizeof
来源:互联网 发布:数据库市场占有率 2016 编辑:程序博客网 时间:2024/06/05 02:21
C语言中判断数据类型或者表达式长度符;不是一个函数,字节数的计算在程序编译时进行,而不是在程序执行的过程中才计算出来。
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
printf("%d\n",sizeof(arr));
printf("%d\n",sizeof(&arr));
printf("%d\n",sizeof(arr+1));
printf("%d\n",sizeof(&arr+1));
printf("%d\n",sizeof(b=a+2));
printf("%d\n",sizeof(b));
return 0;
}
如上的程序,输出为40,4,4,4,4,4;所以不难看出只有当写成printf("%d\n",sizeof(arr));时计算的是整个数组的长度;其余的都是在计算字节长度;
当然sizeof也不是函数,所以他没有输出a+2的值,而是输出了int型所占的字节数4.
如果求一个数组的长度,我们可以这样写
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
sizeof(arr)/sizeof(arr[0])就求出了数组的长度。
同样我们要知道以下的情况输出的是什么:
#include<stdio.h>
int main()
{
char arr[]="abcdef\0";
char *parr="abcdef";
printf("%d\n",sizeof(arr));
printf("%d\n",sizeof(parr));
printf("%d\n",strlen(arr));
printf("%d\n",strlen(parr));
return 0;
}
此时输出的是8,4,6,6;第一个求得是数组的长度;第二个求得是指针变量的大小,所以是四个字节;第三个求得是字符串长度,不算\0所以输出的是6;同样第四个也是求字符串长度,所以也是6。
- SIZEOF
- Sizeof
- sizeof
- sizeof
- sizeof
- sizeof
- sizeof
- sizeof............
- sizeof
- sizeof
- sizeof
- sizeof
- sizeof
- sizeof
- sizeof
- sizeof
- sizeof
- sizeof
- 第一遍 第二章算法
- 在Editplus配置PHP
- Bzoj3791:作业:DP
- ext2文件系统源代码之xattr_security.c
- Http协议访问DataSnap Rest 服务器 - 封三郎
- sizeof
- java语言程序设计第十版(Introduce to java 10th) 课后习题 chapter7-32
- Spark 性能相关参数配置详解-Storage篇
- RTSP实例解析
- 遗传算法学习心得
- 第一遍 第三章线性表
- 开始启程,你的第一行
- (15.1.15) 工具型产品如何建立自己的商业化模式?
- 4.1 面向对象程序设计概述