当前位置: 首页 > news >正文

驻马店市做网站seo优化快速排名技术

驻马店市做网站,seo优化快速排名技术,重庆做网站开发的公司,专业的企业宣传片制作1.结构体 1.1 结构的基础知识 结构是一些值的集合,这些值称为成员变量。一个整型数组,它的每个数组元素只能是整型,字符型的数组它的每个元素只能是字符型。但是结构体的每个成员可以是各种不同类型的变量。 1.2结构的声明 //声明 struct t…

1.结构体

1.1 结构的基础知识
结构是一些值的集合,这些值称为成员变量。一个整型数组,它的每个数组元素只能是整型,字符型的数组它的每个元素只能是字符型。但是结构体的每个成员可以是各种不同类型的变量。
1.2结构的声明

//声明
struct tag
{member - list;
}variable-list;
//比如要描述一个学生的信息
struct Stu
{char name[20];int age;char sex[5];char id[20];
};

1.3 特殊的声明
在声明结构体的时候,可以不完全的声明

//这就是匿名结构体类型
struct
{int a;char b;float c;
}x;struct
{int a;char b;float c;
}a[20],*p;

顾名思义,匿名,就是结构体在声明的时候省略掉了结构体标签(tag)。
那么我们可以思考一下这个问题

//在上面代码的基础上,下面的代码合法吗?
p=&x;

这种写法是不可以的,编译器会把上面的两个声明当成完全不同的两个类型,所以是非法的。
1.4 结构体的自引用
在数据结构中,有顺序访问和链式访问两种数据的访问方式:
顺序访问,就是按照顺序,一个接一个访问
在这里插入图片描述
链式访问主要针对数据没有在一块连续的空间,而是分散在各个内存块上的情况,这样前一个数要想顺利找到下一个数据,就必须在存储自身数据的同时还存储了下一个数据的地址,这样就能顺着地址成功找到下一个数据:
在这里插入图片描述
那么我们如果用结构体这么来实现是否可行:

struct Node
{int data;struct Node next;
};

答案是不可以,因为我们没有办法计算sizeof(struct Node)。
正确的自引用方式应该是这样:

struct Node
{int data;struct Node* next;
};

1.5 结构体变量的定义和初始化
结构体变量的定义有两种方式:

struct S
{int a;char b;float c;
}s1;//声明类型的同时定义变量s1 struct S s2;//定义结构体变量s2

结构体变量的初始化

//第一种初始化方法
struct S
{int a;char b;float c;
}s1 = { 20,'c',3.14 }, s2 = {.c=5.2,.b='a',.a=10};//这种初始化的方法可以打破顺序的限制//第二种初始化方法
struct S s3 = { 30,'d',6.0 };

1.6 结构体内存对齐
如何计算一个结构体的大小呢?
首先得掌握结构体的对齐规则:
1.结构体的第一个成员永远放在相较于起始位置偏移量为0的位置。
2.从第二个成员开始,往后的每个成员都要对齐到某个对齐数的整数倍处,对齐数就是结构体成员自身的大小和默认对齐数的较小值,VS的默认对齐数是8。
(gcc没有默认对齐数,对齐数就是结构体成员的自身大小。)
3.结构体的总大小,必须是最大对齐数的整数倍,最大对齐数是所有成员对齐数中最大的值。
举个例子吧:

struct S
{char a;int b;char c;
};
int main()
{printf("%d", sizeof(struct S));//大小是12return 0;
}

在这里插入图片描述
为什么会存在内存对齐呢?
1.平台原因
不是所有的硬件平台都能访问任意地址上的任意数据的,某些硬件平台只能在某些地址处取某些特定类型的数据,否则会抛出硬件异常。
2.性能原因
数据结构(尤其是栈)应该尽可能地在自然边界上对齐。
原因在于,为了访问未对其的内存,处理器需要作两次内存访问,而对齐的内存访问仅需要一次访问。
总体来说,结构体的内存对齐是拿空间来换取时间的做法。所以在设计结构体的时候,我们既要满足对齐,又要节省空间,就需要让一些占用空间小的成员尽量集中在一起,例如

struct S
{char a;char c;int b;
};

1.7 修改默认对齐数
默认对齐数是可以修改的,我们可以用#pragma来修改:

#pragma pack(8)//修改默认对齐数是8
struct S
{char a;char c;int b;
};
#pragma pack()//取消设置的默认对齐数,还原为默认

所以在结构对齐方式不合适的时候,我们可以自己设置默认对齐数

http://www.shuangfujiaoyu.com/news/37698.html

相关文章:

  • 网站建设厃金手指谷哥十四sem代运营托管公司
  • 客户细分精准营销重庆百度关键词优化软件
  • 上海网站建设沪icp备百度电商平台
  • 成都建站网站全网线报 实时更新
  • 购物网站如何做性能测试广州seo关键词优化是什么
  • 云南省交通投资建设集团有限公司网站2022最新免费的推广引流软件
  • 163建筑网站windows优化大师提供的
  • 代理注册公司行情关键词排名优化是什么意思
  • 洛阳做网站找哪家好杭州专业seo服务公司
  • 做超市海报的网站站长seo工具
  • 武汉交通建设网站建设公司网站大概需要多少钱?
  • 惠州网站建设系统网页设计软件dreamweaver
  • 手机网站 input合肥网络关键词排名
  • 网站页面设计服务全网营销系统怎么样
  • 深圳南山企业网站建设大丰seo排名
  • 南京市城市建设档案馆网站google store
  • 做网站哪些网络公司好杭州seo网
  • 腾冲做兼职的网站南京网站推广公司
  • 一般网站做推广要多大的带宽和内存网上销售推广方案
  • wordpress 漏洞优化大师的优化项目有哪7个
  • 网站开发培训收费b站暴躁姐
  • 重庆公司公章查询优化品牌seo关键词
  • 做吉祥物的网站企业网站建设方案策划
  • 网站建设需要做的事情自己可以做网站吗
  • 网站布局方案seo整站优化吧
  • 叙述网站的建设意义所在黑马it培训班出来现状
  • 佛冈网站建设在线外链发布工具
  • 深圳做模板网站的公司关键词优化的发展趋势
  • 成都网站建设好多钱全网营销一站式推广
  • 提供做pc端网站网站维护需要学什么