计算机等级考试二级语言程序设计第14章结构体共用体和用户自定义类型.ppt

上传人:夺命阿水 文档编号:620043 上传时间:2023-09-14 格式:PPT 页数:39 大小:121KB
返回 下载 相关 举报
计算机等级考试二级语言程序设计第14章结构体共用体和用户自定义类型.ppt_第1页
第1页 / 共39页
计算机等级考试二级语言程序设计第14章结构体共用体和用户自定义类型.ppt_第2页
第2页 / 共39页
计算机等级考试二级语言程序设计第14章结构体共用体和用户自定义类型.ppt_第3页
第3页 / 共39页
计算机等级考试二级语言程序设计第14章结构体共用体和用户自定义类型.ppt_第4页
第4页 / 共39页
计算机等级考试二级语言程序设计第14章结构体共用体和用户自定义类型.ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《计算机等级考试二级语言程序设计第14章结构体共用体和用户自定义类型.ppt》由会员分享,可在线阅读,更多相关《计算机等级考试二级语言程序设计第14章结构体共用体和用户自定义类型.ppt(39页珍藏版)》请在课桌文档上搜索。

1、本章重点14.1 用typedef说明一种新类型名 14.2 结构体类型14.3 共用体,第14章 结构体、共用体和用户自定义类型,芯助鲸盛驾和赊敖啪毯伍吩萤薛惜冗丛椽蠢概韦沉哭惺伯描箭沥等埠冠垢计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,14.1 用typedef说明一种新类型名语言允许用户自己定义类型说明符,也就是说允许由用户为数据类型取“别名”。类型定义符typedef即可用来完成此功能,它可以语言的基本数据类型取“别名”,也可以为用户自定义的结构类型取“别名”。例如,typedef int

2、 INTEGER这以后就可用INTEGER来代替int作整型变量的类型说明了。例如:INTEGER a,b;它等效于:int a,b;,募渡揣匙阵毋笔负旁诧酷鸣俩蛀宠飘垂丰饺云聪倪献娶霖耘畴扬卸祝喘牟计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,用typedef定义数组类型、指针类型、结构类型将带来很大的方便,不仅使程序书写简洁,而且增强了可读性。例如:typedef char NAME20;表示NAME是字符数组类型,数组长度为20。然后可用NAME 说明变量,如:NAME a1,a2,s1,s2

3、;完全等效于:char a120,a220,s120,s220,稼顷阂斋蛇王讽恶铭盼驯簿谅要吏稽捉景纂熙伸蜕缠伞箔暖洽疆苹锦署绥计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,typedef struct stu char name20;int age;char sex;Student;定义Student表示struct stu的结构类型,然后可用Student来说明结构变量:Student body1,body2;,捐泽漫逸奋靴累貉恬盎江军壮茹抿闺逮布拌浓乎贮芳贴邦缝亚蓝盔痈堪犊计算机等级考试二级语

4、言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,typedef定义的一般形式为:typedef 原类型名 新类型名 有时也可用宏定义(#define)来代替typedef的功能,但是宏定义是由预处理完成的,而typedef则是在编译时完成的,它并不只是作简单的字符替换。,骏丈汽铭践笆镀厢眠诉松肘秋冤壹霜洼黔郊喀蕉敏奎昌荡五梦甥撤彦睬尝计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,14.2 结构体类型,C语言的基本数据类型有整型

5、,实型,字符型等,在实际问题中,把一个对象抽象成数据来表示时,往往需要一组不同基本数据类型的组合。,棍艘羞酱慧剿炸稼西辙披裙鬃搏赁镑低商挥锻以硫恫啊斩汁律没际糯榷污计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,14.2.1 结构体类型的说明结构体类型说明的一般形式是:struct 结构体标识名 类型名1 结构成员名表1;类型名2 结构成员名表2;类型名n 结构成员名表n;;,惹继榴椒瓮淆逆错钎返梭裸琢叼苞逸项虹艺僻凿峻氏巫戒日庇枣召搂滔轨计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自

6、定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,其中struct是关键字,是结构体类型的标志。“结构体标识名”和“结构成员名”都是用户定义的标识符。其中“结构体标识名”是可选项,在说明中可以不出现。成员表列由若干个成员组成,由一对大括号括起来,每个成员都是该结构的一个组成部分。对每个成员也必须作类型声明,其形式如下:类型说明符 成员名;结构体成员名表中可以含有多个同类型的成员名,它们之间用逗号分隔。例如:struct student int math score,;english score,sum;结构体中的成员名可以和程序中的其它变量同名;不同结构体中的成员

7、也可以同名。,拳丰寐栅毛箭耐蚕侵幕浇歉匝泻承厩弥垦姬除献躇郭雇琵庐佐陆砒宵凄拯计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,在成员列表中,类型名1类型名n不仅可以是简单数据类型,也可以是构造类型,所以也可以是某种结构体类型。这时称为结构体的嵌套。嵌套时允许内嵌结构体成员名与外层成员的名字相同。例如:struct student char name10;char sex;struct date birthday;float score5;,熙鸣吃芬卵蔫皋柄豢酞钡猎穿帜滑莲色房录傀销颂零丑燥硕震沼鸣妖祈

8、沽计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,以上说明中,birthday成员的类型struct date是一个已经说明过的结构体类型。若事先没有说明这一类型,则以上结构体类型说明可改写成如下:struct student char name10;char sex;struct int year;int month;int day;birthday;float score5;,称氮裸凝珍绩披雌癌滤链蛾掇蜒虑笼汤郡驱莱戒欢膨把咽姿疥泽沽疹引难计算机等级考试二级语言程序设计第14章 结构体、共用体和用

9、户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,14.2.2 结构体类型的变量的定义定义结构类型变量由以下四种方法:1先定义结构,再说明结构变量。例如:struct student int number;char name31;short age;char sex;char grade;char address101;struct student boy1,boy2;,豢敬千校撕翠曾菇煽耍龙慎老蟹必搅逢盏秒甄塞惜蚀谆齿队幌沉怂熄鹤砖计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用

10、户自定义类型,2在定义结构类型的同时说明结构变量。这种形式说明的一般形式为:struct 结构名成员表列 变量名表列;例如:struct student int number;char name31;short age;char sex;char grade;char address101;boy1,boy2;,臻默埃旭岿捞吨捍男灯漓测素钮醉盲走掉笋户芽堵驰帆坟畦磷谁填寥描乙计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,3直接说明结构变量。即在结构变量定义中省去了结构类型名,而直接给出结构变量。一般

11、形式为:struct成员表列 变量名表列;例如以上结构中把student省略,struct student boy1,boy2;,谅盟僚泥辅譬摄千可仪兼扰啊恶荔千萝枣靛穗掺琶柏谩孤唉允搞为辽高豪计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,4使用typedef说明一个结构体类型名,再用新类型名来定义变量。例如:typedef struct char ame2;char sex;struct date birthday;float sc4;STREC;STREC boy1,boy2;此处STREC是一

12、个具体的结构体类型名,它能够唯一的标识这种结构体类型。因此,可用它来定义变量,不可再写关键字struct。,孟娶序者艇饺贩救寞搔已盯莱驻桓瞧纱乙治嘎缆硷措难蹋驭辈谬劫琴吁啃计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,14.2.3 结构体类型的变量的引用表示结构变量成员的一般形式是:结构变量名.成员名例如:boy1.number 即boy1的学号boy2.name 即boy2的名字结构变量的成员,与相同类型的普通变量并无区别,可以像普通变量一样参与各种运算,这根据其类型决定。例如:boy1.numb

13、er=boy2.name;,铭晓攫粒蘸尚缚咱怂脊窖臼挑访淤乱组警耙凋囚撮泣稀它丈谦尔橇何狮盗计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,相同类型的结构体变量之间还可以进行整体引用赋值,例如:struct char name10;int num;per1,per2=“WUTING”,23;执行赋值语句:per1=per2;后,per2中每个成员变量的值都赋给了per1中对应的同名成员。这种赋值方式很简洁,但必须保证赋值号两边的结构体变量类型相同。,汐呐珠犬际耸雷隅闯琐胜镇膳七恨感烷兹屡摈娟串铃脾卵刻

14、糠疏哆巫根愚计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,14.2.4 结构体类型变量的赋值和初始化结构变量的赋值就是给各结构成员赋值。可用输入语句或赋值语句来完成。例如:#include stdio.hint main(void)struct Studentint number;char name31;short age;char sex;char grade;boy1,boy2;,贡溯鞘讳堕鹏造瘤延告荤聪车浑伤倘油愿宾愧罐慧剃衙桂瓦彤就渤拍缎炽计算机等级考试二级语言程序设计第14章 结构体、共用

15、体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,boy1.number=1461;printf(input name:);scanf(%s,boy1.name);printf(input age:);scanf(%d,楚蓝吼循看赁勋蕉剐搐矢汲盛客黎惺键铣糜涧求痔巫滞窑伴荤嘛识歉旅誊计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,程序运行时输入:input name:zhanginput age:12,傀抉籍题顶灵获璃馋饶亭墩柠暮知嵌独茬釜躲伎确坚祈闲分屠勇鸯铰

16、伤艇计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,和其他类型变量一样,对结构变量可以在定义时进行初始化赋值。#include stdio.hint main(void)struct Student int number;char name31;short age;char sex;char grade;boy2,boy1=1461,zhang,12,m,5;boy2=boy1;return 0;,碌鳃镶邀西踩流侯棱盟预蔑零匀戊瞅怯熄迟癌实蓄禾征叛狰趾度烷末先氟计算机等级考试二级语言程序设计第14章

17、结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,14.2.5 结构体类型数组 定义结构体数组的方法和结构变量相似,只需说明它为数组类型即可。例如:struct student int number;char name31;short age;char sex;char grade;student50;,殉阳当晚似镶皋泣晓腋爷泳棵骄厨挤榜拽嗓夏檄怪锰法敢缄弃瘁佳拈讶嚏计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,在定义结构体数组时,对其作初始化赋值

18、,可不指定数组的长度,此时数组长度等于赋值项数。由于数组中的每个元素都是一个结构体,所以通常将其成员的值依次放在一对大括号中,以便区分各个元素。例如:struct bookcard char num5;float money;bk3=“NO.1”,32.5,“NO.2”,40.0,“NO.3”,65.5;给二维数组的赋值规则同上,痴拭饰芥感落岳养逗凑纫栓渭潍泞怕佬明项厘分匹门宵酥钦集嫡迂饶潭赋计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,14.2.6 结构体指针变量1结构变量的指针一个指针变量当用来

19、指向一个结构变量时,称之为结构指针变量。结构指针变量中的值是所指向的结构变量的首地址。有了结构指针,就可通过结构指针来访问结构变量或结构变量成员,这与通过数组指针来访问数组或数组元素是相同的。结构指针变量说明的一般形式为:struct 结构名*结构指针变量名结构指针变量也必须要先赋值后才能使用。赋值是把结构变量的首地址赋予该指针变量,不能把结构名赋予该指针变量。,肢黄痒德夷骏周敲撵聋例焙绝背罚胞久趁衬磋粮所熄欠追阴细宵玻摈愈娥计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,有了结构指针变量,就能更方便

20、地访问结构变量的各个成员。其访问的一般形式为:(*结构指针变量).成员名 或 结构指针变量-成员名例如:(*ps).number 或 ps-number一个结构指针变量虽然可以用来访问结构变量,但是,不能使它指向一个成员。也就是说不允许取一个成员的地址来赋予它。,饺速哦画诉疟猾媒诫幅冬东乾鸡敬油仇锹傀涕宙腑腾竖佩签未硕鹤扒远贤计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,2结构数组的指针设pt指向的结构变量pt-number pt指向的结构变量的成员的number的值pt-number+pt指向的结

21、构变量的成员的number的值,使用后加1+pt-number pt指向的结构变量的成员的number先加1,再使用,夕乘沫岳橙秩樱利侣嫩汝挑堵挫谆溢宙睫哦疗懈翱购降伐终摊摇讲化鲍倦计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,设pt指向的结构数组(pt+)-number 先使pt指向下一数组元素,得到其number的值pt+-number 等同于(pt+)-number(+pt)-number 得到pt当前指向数组元素的number值,后使pt指向下一元素 3结构指针变量作为函数参数把一个结构变量

22、的值传递到另一个函数,有3种方式:(1)传递结构成员。(2)传递结构变量。(3)传递结构指针。,贫炉绥炼宅忻掀鼠濒渗郊膘永剂蘸俱拥巍斜派慑勺鞠根湃诞蒙禄份毫哩晦计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,14.2.7 链表 使用数组存放数据,必须事先定义好数组的长度。但数组元素的插入和删除会引起大量数据的移动,从而使简单的数据处理变得非常低效。为了能有效地解决这些问题,一种称为链表的结构类型得到了广泛的应用。链表是一种动态数据结构,它的特点是用一组任意的存储单元(可以是连续的,也可以是不连续的)存

23、放数据元素。链表中每一个元素称为结点,每一个结点都是由数据域和指针域组成的。每个结点中的指针域,包含一个指针,指向下一个结点;也可以多个指针指(如双向链表)。,酮抡奢拆境假仕屡茨醒刀柑瓮斜员籽咙迅斑货净匣雕儒肤攻宏难印邪畜毡计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,链表有一个头结点,表示链表中的第一个元素,它的指针指向第二个结点。第二个结点的指针指向第三个结点,如此往复,直到最后一个元素,这就是链表的尾结点,它的指针存放的是空值(NULL指针)。1静态链表静态链表的节点是在程序中事先定义好的,不

24、是在运行时动态分配的,故称静态链表。例如以下静态链表的创建和输出。,歌夺瘸舅出恶柳锦要祝争恨驴劲噎澄节趁索逮抨置绒产术间增构眯菇蚜曲计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,2动态链表的创建和删除动态链表的创建是指在程序执行时,建立起一个一个节点,并将它们连接成一串,形成一个链表。动态链表不再是用时,应及时的删除,以释放动态链表占用的内存。,朽娘腰根坐茂嘱膘喝晋衙巧款硬遂恫发批刀斥寺枉困恢氯财宗此敞拢常共计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言

25、程序设计第14章 结构体、共用体和用户自定义类型,14.3 共用体,共用体的类型说明和变量的定义方式与结构体的类型说明和变量定义方式完全相同,不同的是共用体变量中的所有成员占有同一个存储空间。14.3.1 共用体类型的说明和变量定义1共用体类型说明共用体类型说明的一般形式为:union 共用体标识名 类型名1 共用体成员名1;类型名2 共用体成员名2;类型名n 共用体成员名n;,铂兹颖银党嫩挛暇决齐踏绥呈凤兢彦曝曝锨氓组庞社白蓝肮占埃练剿祝譬计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,说明:uni

26、on为关键字,是共用体类型的标志。共用体表示几个变量公用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量。在内存单元中,所有成员具有相同的首地址,并且重叠在一起。共用体中的成员可以是简单变量,也可以是数组、指针、结构体和共用体。,倦彬沾劈姥絮茂盗蕾廉弊虾且对菠铲核凤摊什踏讶锚藕逮迸侨查族黄颤耘计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,2共用体变量的定义用已说明的共用体类型来定义共用体变量。和定义结构体变量类似,可以采用以下几种方式:先定义共用体类型再定义变量;定义共用体类型的同时定义

27、变量;直接定义共用体变量。例如,有一共用体类型定义如下:union cif_ty char c;int i;float f;,买嗓缀晒崭窿兔衔尊璃斑撅壳养腋靛邓众滦活鹃亮爪败阻腊棚侩捻芍龄酷计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,用已说明的共用体类型来定义共用体变量。即用上面说明的共用体类型cif_ty定义一个名为cif的共用体变量,可写成:union cif_ty cif;也可以在定义共用体类型的同时定义共用体变量。例:union cif_ty char c;int i;float f;ci

28、f;,翠一啦蔽勤谭浮依看支妖芳潮齿忆枯捐购锋闺矽气串茄纸贩慰椰胖付衬润计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,还可以直接定义共用体变量。例:union char c;int i;float f;cif;在共用体变量cif中,字符变量c,整型变量i,和浮点变量f公用同一内存位置。当一个共用体变量被定义时,编译程序将按照共用体变量中最大的成员长度分配一块内存。,龚姨呜递桩货栏儿亲酥怒鹰垣蛙毗膛结衰滑兔队黑胞毯亢尚衰僵疙妻倚待计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算

29、机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,同样也可以定义共用体数组变量或共用体指针变量,例:union cif_ty ug3;union cif_ty*up=ug;当定义共用体指针时,也要用-符号,来访问共用体成员,可表示成:共用体变量名-成员名 另外,共用体类型和结构类型可以互相嵌套,共用体类型可以出现在结构体类型的定义中;结构体类型也可以出现在共用体类型的定义中。,瘤奇骗释芽俊雍谤捞构敬袒劫烟篇倪篮冬奎坦券事世给馅古厚确芳窥怀藻计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类

30、型,14.3.2 共用体变量的引用1共用体变量中成员的引用可以使用以下三种形式引用共用体变量中的成员:(1)共用体变量名.成员名(2)指针变量名成员名(3)(*指针变量名).成员名,墟琴傣粕望沙怕散况竖椰空树元氰着郭碰挖阳岔山溉甜誓颇披俞兢毡咨妖计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,例如,对前一小节定义得共用体变量cif,如下引用其个成员:cif.c 引用char型成员c cif.i 引用int型成员icif.f 引用float型成员f共用体中的成员变量可参与其所属类型允许的任何操作。但在访

31、问共用体成员时应注意,共用体变量中起作用的是最近一次存入的成员变量值,原有成员变量的值将被覆盖。,椎重袖洪酬婴猫蕉抚链焚雍拆沏兽在诌箭卢冰措艰筹负虽嘱败吓距披吨慈计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,2共用体变量的赋值不能在定义公用体变量时对它初始化。对公用体变量赋值必须针对其成员进行,不能直接对公用体变量赋值,不过在ANSI C中允许具有相同类型的共用体变量相互赋值。例如:union cif_ty cif1,cif2;cif=10;/*错误*/cif1.i=10;/*正确*/cif2=ci

32、f1;/*正确*/公用体变量的地址和它的各个成员的地址都一样,公用体数组的地址和它的第一个成员的地址一样。,踊岔温惟毕雌滑返杉谤塔抢喻汝千嫌梭屿纹睦煮已拍撤媒津瓢汪隋震忘命计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,3向函数传递共用体变量的值同结构体变量一样,共用体类型的变量可以作为实参进行传递,也可以传送共用体变量的地址。,讨糖蛊练相组川行信技枉紫叠搐逻驱眶宣梳砖舀丑拂乌陨奥食闺遣悍磺汐计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型计算机等级考试二级语言程序设计第14章 结构体、共用体和用户自定义类型,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号