sizeof是函数吗,具体使用方法
来源:互联网 发布:虚与委蛇 知乎 编辑:程序博客网 时间:2024/05/18 00:06
1.sizeof是运算符,不是函数;
2.sizeof不能求void类型的长度,void本来申明的就是一个空类型,自己都不知道自己的类型有多大;但是sizeof可以求得void指针的大小;
int a = 10;
void* p = &a;
printf(“%d\n”,sizeof(p));
输出的结果为4
3.sizeof求一个指针的大小,不管指针指向的是什么类型,在32位平台下都是4;
4.sizeof可以求一个静态数组的整体大小;
int arr[10] = {1,2,3,4,5,6,7,8,9,10};sizeof(arr);
此时求得就是整个数组的大小,大小为40;
5.但是数组名作为参数,在传参的时候 ,sizeof求得的是当成常指针来计算的,在32平台下为4
int Binary_search(int* arr, int left, int right, int k){}sizeof(arr);
这个时候数组名代表的就不在是整个数组了
6.sizeof不能求一个动态数组的大小;
int *p = new int [10]; sizeof(p) ;
这个时候p的大小时4,因为此时p是一个指针;
7.sizeof不能求不完整的数组的大小;
例如,file1.cpp 和file2.cpp ,其中fiel1中有如下定义;
int arr1[10]={1,2,3,4,5,6,7,8,9,0}; int arr2[10]={1,3,5,7,9,2,4,6,8,10};
file2中如下:
extern arr1[]; extern arr2[10];cout<<sizeof(arr1);cout<<sizeof(arr2);
第一条语句可以求出arr1的大小是40;第二条语句会报错;
7.当表达式做为sizeof操作数的时候,他的结果是表带是计算结果类型的大小,但是他不对表达式求值;
例如:
int a = 10;
char b='q';
sizeof(a+b);
sizeof(b=a+b);
表达式1得出的结果是4,表达式2得出的结果是1;
因为表达式一的操作数结果为int 而操作数2的结果为char;
8.sizeof求得的结构体大小,不是各个成员变量大小之和,结构体存在内存对齐;
9.sizeof不能求出结构体位段的大小,但是可以求出位段每个成员的大小;
- sizeof是函数吗,具体使用方法
- sizeof 是关键字不是函数
- matlab中随机函数的具体使用方法
- MATLAB之fprintf函数的具体使用方法
- sizeof 使用方法
- sizeof()是一个函数!!!不是宏
- sizeof不是函数,是操作符
- sizeof--常年被人误认为是函数
- C语言sizeof是关键字还是函数?
- sizeof()具体用法
- sizeof不是函数,是操作符,是关键字
- 一句话经验:sizeof是操作符而不是函数
- [C] sizeof居然不是函数是运算符
- 怎样证明sizeof()是一个运算符,而不是函数
- sizeof的使用方法
- sizeof的使用方法!!!
- sizeof的使用方法
- thickbox的具体使用方法
- 青蛙的约会 POJ
- iOS 最新上架心得
- 学生管理系统问题总结- 0.2
- Maven之Tomcat6、Tomcat7-yellowcong
- 01.Spring Cloud学习笔记之使用IDEA+Spring Boot快速构建Rest服务
- sizeof是函数吗,具体使用方法
- 做了一个淘宝内部优惠券分享平台支持微信公众号以及网站
- 第K大的数
- leetcode 8. String to Integer (atoi)
- 【Data_Structure笔记6】排序算法之【二路归并排序】
- (3)servlet单例问题、load-on-startup、ServletConfig
- JVM调优总结
- HDU3874
- extern的总结