sizeof运算符通常用于获取变量或类型所占内存的大小(单位是字节)
- #include
-
- struct D{
- char a;
- int b;
- };
-
- int main()
- {
- int a = 0;
- struct D d;
- printf("sizeof(a)=%ld\n", sizeof(a));
- printf("sizeof(int)=%ld\n", sizeof(int));
- printf("sizeof(d)=%ld\n", sizeof(d));
- printf("sizeof(struct D)=%ld\n", sizeof(struct D));
- return 0;
- }
运行程序输出:
sizeof(a)=4
sizeof(int)=4
sizeof(d)=8
sizeof(struct D)=8
使用此特性可以结合memset,对数据结构进行初始化:
- #include
- #include
-
- struct D{
- char a;
- int b;
- };
-
- int main()
- {
- D d;
- printf("before init:a=%d, b=%d\n", d.a, d.b);
- memset(&d, 0, sizeof(d));
- printf("after init:a=%d, b=%d\n", d.a, d.b);