sizeof操作符的使用详解
2011-03-28 22:46
495 查看
一直把sizeof当做函数来用,今天才发现它仅仅是个操作符而已。(严格来说,操作符也是函数,但是把它当做操作符来看更合适)
用法:
sizeof操作符的作用是返回一个对象或类型名的长度,返回值的类型为size_t(unsigned),长度的单位是字节(byte)。sizeof表达式的结果是编译时常量。有以下三种语法形式:
举例说明:
使用sizeof的结果部分地依赖于所涉及的类型:
对char类型或值为char类型的表达式做sizeof操作保证得1
对引用类型做sizeof操作将返回存放此引用类型对象所需的内存空间大小
对指针做sizeof操作将返回存放指针所需的内存大小;如果要获取指针所指向对象的大小,则须对指针进行解引用
对数组做sizeof操作等效于将对其元素类型做sizeof操作的结果乘上数组元素的个数。所以可以用sizeof数组的结果除以sizeof其元素类型的结果即可求出数组元素的个数
通过一个小程序来测试你是否理解了sizeof的用法,看下列程序的输出结果:
正确结果:
1
7
6
4
4
4
4
做对了吗,是不是很简单?如果还有什么问题,欢迎和我讨论
转自:http://www.cnblogs.com/sunj/archive/2011/03/26/1996516.html?login=1#commentform
用法:
sizeof操作符的作用是返回一个对象或类型名的长度,返回值的类型为size_t(unsigned),长度的单位是字节(byte)。sizeof表达式的结果是编译时常量。有以下三种语法形式:
sizeof(type name); sizeof(expr); // 获得该表达式的结果的类型长度 sizeof expr; // 不计算表达式expr的值
举例说明:
sizeof(int); // 表达式值为4 sizeof int; // 语法错误 sizeof(2+0.5); // 表达式值为8(原帖为4); sizeof 2+0.5; // 表达式值为4.5
使用sizeof的结果部分地依赖于所涉及的类型:
对char类型或值为char类型的表达式做sizeof操作保证得1
对引用类型做sizeof操作将返回存放此引用类型对象所需的内存空间大小
对指针做sizeof操作将返回存放指针所需的内存大小;如果要获取指针所指向对象的大小,则须对指针进行解引用
对数组做sizeof操作等效于将对其元素类型做sizeof操作的结果乘上数组元素的个数。所以可以用sizeof数组的结果除以sizeof其元素类型的结果即可求出数组元素的个数
通过一个小程序来测试你是否理解了sizeof的用法,看下列程序的输出结果:
1 #include <iostream> 2 using namespace std; 3 size_t func(char a[]) 4 { 5 return sizeof(a); 6 } 7 int main() 8 { 9 char a = 'a'; 10 char b[] = "hustor"; 11 char c[] = {'h','u','s','t','o','r'}; 12 char *d = "hustor"; 13 cout << sizeof a << endl; 14 cout << sizeof b << endl; 15 cout << sizeof c << endl; 16 cout << sizeof d << endl; 17 cout << func(b) << endl; 18 cout << func(c) << endl; 19 cout << func(d) << endl; 20 return 0; 21 }
正确结果:
1
7
6
4
4
4
4
做对了吗,是不是很简单?如果还有什么问题,欢迎和我讨论
转自:http://www.cnblogs.com/sunj/archive/2011/03/26/1996516.html?login=1#commentform
相关文章推荐
- sizeof操作符的使用详解
- sizeof操作符的使用详解
- sizeof 操作符详解
- PHP函数sizeof()的具体使用语法详解
- 详解sizeof操作符
- sizeof操作符关于类相关使用
- DOS命令大全:使用命令重定向操作符 (Redirection Operators)命令详解
- 深入sizeof的使用详解
- sizeof操作符详解一
- RxJava使用详解--转换操作符
- C/C++ sizeof操作符用法详解
- C++中点操作符和箭头操作符的使用详解
- Rxjava功能操作符的使用方法详解
- Swift开发之 as、as!、as?三种类型转换操作符使用详解
- 基于Sizeof与Strlen的区别以及联系的使用详解
- RxJava使用详解--过滤操作符
- Swift as、as!、as?三种类型转换操作符使用详解
- RxJava使用详解--组合操作符
- Swift开发之 as、as!、as?三种类型转换操作符使用详解
- 详解sizeof操作符