sizeof 的用法
来源:互联网 发布:windows xp 雨木林风 编辑:程序博客网 时间:2024/05/17 02:04
一、sizeof的概念
sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。
sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。
二、sizeof的使用方法
1、用于数据类型
sizeof使用形式: sizeof(type)
数据类型必须用括号括住: sizeof(int)
2、用于变量
sizeof使用形式: sizeof(var_name) 或 sizeof var_name
变量名可以不用括号括住.如sizeof (var_name),sizeof var_name等都是正确形式
注意:sizeof操作符不能用于函数类型,不完全类型或位字段。
例如: sizeof(max)
三、sizeof的结果(以下结果都是在Linux v2.6 gcc v4获取)
sizeof操作符的结果类型是size_t
1、ANSI C正式规定字符类型为1字节。
2、其他类型在ANSI C中没有具体规定,大小依赖于实现。
3、当操作数是指针时,sizeof依赖于编译器。
4、当操作数具有数组类型时,其结果是数组的总字节数。
6、当操作数是联合类型时,sizeof是其最大字节成员的字节数。
struct a{
在Linux上: sizeof(a) = 12;
这是因为编译器在考虑对齐问题时,在结构中插入空位以控制各成员对象的地址对齐。
7、当操作数是函数中的数组形参或函数类型的形参:
四、sizeof与其他操作符的关系
sizeof的优先级为2级,比/、%等3级运算符优先级高。
五、sizeof的主要用途
1、主要用途是与存储分配和I/O系统那样的例程进行通信。
2、另一个的主要用途是计算数组中元素的个数。
PS最后举一个面试题的例子(下面的例子我都上机是过了 32为的c++程序)
char str[]="Hello";
char *p=str;
int n=10;
sizeof(str)=6;//加上最后的终止字符 共6位,没有疑问
sizeof(p)=4; //指针的大小就是4位
sizeof(n)=4; //int型占4位
void Func(char str[100])
{ sizeof(str)=4;} //这个可能比较难理解,为什么是4位,有人说不应该是100位吗,上机是4位是不会错的,现在我解释一下为什么是4,这里的Func(char str[100])可以看为Func(char *str),指针就占4位,故为4
void *p=malloc(100);
sizeof(p)=4 //不解释 指针占4位
- sizeof的的用法
- sizeof的用法
- sizeof的用法
- sizeof的用法
- sizeof的用法
- sizeof 的用法
- sizeof 的用法
- sizeof 的用法
- 关于sizeof的用法
- sizeof的用法细节
- sizeof的用法
- sizeof的用法
- sizeof的用法
- sizeof() 的用法总结
- sizeof的用法
- sizeof的用法
- sizeof的用法
- sizeof的用法
- 登录信息保存到cookie(js)
- 大话设计模式--工厂模式 factory -- C++实现实例
- [Editing] TP-LINK740N v5 firmware Crack
- iOS多线程编程指南(四)线程同步
- jQuery easy ui中datagrid的使用
- sizeof 的用法
- mysql-proxy 读写分离脚本 ytjwt
- 页面加载时判断是否登陆(js)
- Eclipse 高亮显示选中的相同变量
- 两个队列模拟栈的操作(stl实现)
- 根据cookie中的内容改变页面内容
- 【Java工程师之路】[1-3.2]java jar工具
- 23岁那一年,我在做什么
- 指针不是打针