关于sizeof
来源:互联网 发布:低解千机变软件下载 编辑:程序博客网 时间:2024/06/05 23:00
//#include <stdio.h>#include <iostream>#include<string.h>using namespace std;struct{short a1;short a2;short a3;}A;struct{long a1;short a2;}B;int main(void){char *ss1 = "0123456789";char ss2[] = "0123456789";char ss3[100] = "0123456789";int ss4[100];char q1[] = "abc";char q2[] = "a\n";char *q3 = "a\n";char *str1 = (char *)malloc(100);void *str2 = (void *)malloc(100);cout << "sizeof(int)=" << sizeof(int) << "\n ";cout << "sizeof(char)=" << sizeof(char) << "\n ";cout << "sizeof(ss1)="<<sizeof(ss1) << "\n ";cout <<"sizeof(ss2)="<< sizeof(ss2) << "\n ";cout <<"sizeof(ss3)="<< sizeof(ss3) << "\n ";cout << "sizeof(ss4)"<<sizeof(ss4) << "\n ";cout << "sizeof(q1)="<<sizeof(q1) << "\n ";cout << "sizeof(q2)="<<sizeof(q2) << "\n ";cout << "sizeof(q3)="<<sizeof(q3) << "\n ";cout << "sizeof(A)="<<sizeof(A) << "\n ";cout << "sizeof(B)="<<sizeof(B) << "\n ";cout << "sizeof(str1)="<<sizeof(str1) << "\n ";cout << "sizeof(str2)="<<sizeof(str2) << "\n ";return 0;}
sizeof(int)=4
sizeof(char)=1
sizeof(ss1)=4 指针大小为一个定值,大小为4字节
sizeof(ss2)=11:1个字符占一个字节,10个字符就是10个字节,在加上一个结束符‘\0’,所以就是11
sizeof(ss3)=100:数组预分配100
sizeof(ss4)400:数组预分配100个整型数的大小,一个整型数字占4个字节,所以4*100
sizeof(q1)=4类似ss2
sizeof(q2)=3:“\n”转义字符,算做一位
sizeof(q3)=4:指针,类似ss1
sizeof(A)=6
sizeof(B)=8:在默认情况下,为了方便对结构体内元素的访问和管理,当结构体内元素的长度都小于处理器的位数时,便已结构体内最长的数据元素作为对齐单位,也就是说,结构体的长度一定是最长数据元素的整数倍;当结构体内元素的长度大于处理器的位数时,那么就以处理器的位数为对齐单位。但是结构体内类型相同的连续元素将在连续的空间内,和数组一样。结构体A中,3个short类型各占2个字节,2*3=6;结构体B中,a1取4字节对齐,a2取2字节对齐,结构体默认对齐参数取8,则a1取4字节对齐,a2取2字节对齐,结构体大小为6字节,6不为4的整数倍,不空字节,增加到8字节,4*2 = 8
sizeof(str1)=4:指针
sizeof(str2)=4:指针
0 0
- 关于sizeof
- 关于sizeof
- 关于sizeof
- 关于sizeof
- 关于sizeof()
- 关于sizeof
- 关于sizeof
- 关于sizeof
- 关于sizeof
- 关于sizeof
- 关于sizeof
- 关于sizeof
- 关于sizeof
- 关于sizeof
- 关于sizeof
- 关于sizeof
- 关于sizeof
- 关于sizeof
- 30OS笔记(3)
- 最小生成树kruskal算法
- Android源码编译(9)---已知问题
- 深入理解分布式事务
- Oracle RMAN 清除归档日志
- 关于sizeof
- 虚拟机+centOS挂载ISO步骤
- mybatis的事物类别
- 互联网高级测试工程师至少具备的能力
- Java串口通信初识
- 无限轮播
- 邻接表
- python [Errno 10060]错误
- 关于android自定义的相机问题