sizeof

ExpandedBlockStart.gifsizeof
 1 #include <iostream>
 2 #include<stdio.h>
 3 #include<string.h>
 4 using namespace std;
 5 struct
 6 {
 7     short a1;
 8     short a2;
 9     short a3;
10 }A;
11 struct
12 {
13     long a1;
14     short a2;
15     
16 }B;
17 main()
18 {
19     char *ss1="0123456789";
20     char ss2[]="0123456789";
21     char ss3[100]="0123456789";
22     int ss4[100];
23     char q1[]="abc";
24     char q2[]="a\n";
25     char *q3="a\n";
26     char *str1=(char *)malloc(100);
27     void *str2=(void *)malloc(100);
28     cout<<sizeof(ss1)<<endl;
29     cout<<sizeof(ss2)<<endl;
30     cout<<sizeof(ss3)<<endl;
31     cout<<sizeof(ss4)<<endl;
32     cout<<sizeof(q1)<<endl;
33     cout<<sizeof(q2)<<endl;
34     cout<<sizeof(q3)<<endl;
35     cout<<sizeof(A)<<endl;
36     cout<<sizeof(B)<<endl;
37     cout<<sizeof(str1)<<endl;
38     cout<<sizeof(str2)<<endl;
39 }

1、ss1是一个字符指针,指针的大小是一个定值,就是4,所以sizeof(ss1)是4

2、ss2是一个字符数组,这个数组最初未定大小,由具体填充值来定。1个字符所占空间是1位,10个就是10位,再加上隐含的"\0",所以一共是11位。

3、ss3也是一个字符数组,这个数组开始预分配100,所以一共是100位。

4、ss4是一个整形数组,每个整形变量所占空间是4,所以一共400位。

5、同2

6、q2里面有一个"\n","\n"算做一位,所以它的空间大小是3。

7、q3是一个字符指针,指针的大小是一个定值,就是4。

8、在默认情况下,为了方便对结构体内元素的访问和管理,当结构体内的元素的长度都小于处理器的位数的时候,便以结构体里面最长的数据元素为对齐单位,也就是说,结构体的长度一定是最长的数据元素的整数倍。如果结构体内存在长度大于处理器位数的元素,那么就以处理器的位数为对齐单位。

A中3个short类型变量都是以2字节对齐,结构体参数按默认的8字节对齐,则a1,a2,a3都取2字节对齐,sizeof(A)为6,其也是2的整数倍。

B中a1为4字节对齐,a2取2字节对齐,结构体大小6字节,6不为4的整数倍,补空字节,增到8时,符合所有条件,则sizeof(B)为8.

转载于:https://www.cnblogs.com/anderson0/archive/2010/10/12/1849223.html

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值