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

北京网站建设报价seo每天一贴博客

北京网站建设报价,seo每天一贴博客,网站建设的基本内容,wordpress中英双语选择一、结构体的声明 1. 结构体的基本概念 结构体是一些值的集合,这些值称为成员变量。结构体的每个成员可以是不同类型的变量。结构体使得C语言有能力描述复杂类型。 如学生,有姓名、学号、性别等;如书,有作者,出版日期…

一、结构体的声明

1. 结构体的基本概念

结构体是一些值的集合,这些值称为成员变量。结构体的每个成员可以是不同类型的变量。结构体使得C语言有能力描述复杂类型。

如学生,有姓名、学号、性别等;如书,有作者,出版日期,价格等

2. 结构体的声明

(1)声明格式为:

struct tag
{member-list;
}variable-list;

其中member-list为结构体成员变量列表;variable-list为需要创建的结构体变量的列表
例如描述一个学生的结构体声明就可以写成:

 struct Stu
{char name[20];//名字int age;//年龄char sex[5];//性别char id[20];//学号
};//分号不能丢

3. 结构体的成员类型

结构体的成员可以是标量、数组、指针,甚至是其他结构体

4. 结构体变量的定义和初始化

(1)定义

  • 沿用上面描述学生的声明,声明一个结构体变量可以有两种方式:
    声明类型的同时定义变量,即将变量名直接写在变量列表中;或者另起一行像定义其他类型变量一样定义结构体变量
    如下面这段代码:
 struct Stu
{char name[20];int age;char sex[5];char id[20];
}Stu1,Stu2;		//声明类型的同时定义变量Stu1和Stu2
struct Stu Stu3; //另起一行定义结构体变量Stu3

注意这里另起一行定义结构体变量的写法与下面即将提到的另一种方式区别

  • 还有一种定义方式,不过此时结构体声明部分与上面的略有不同,因为用到了 typedef类型重命名关键字,代码如下:
typedef struct Stu
{char name[20];int age;char sex[5];char id[20];
}Stu;

注意这里最后的Stu不是上面说所的变量列表中的内容,即不是声明类型的同时定义的变量,而是这个结构体类型的一个重命名,此时定义一个结构体变量的正确写法就应为:Stu Stu4;当然写成struct Stu Stu4;也没错。但需要注意上面没有用typedef关键字进行类型重命名的声明只能写成struct Stu 变量名;而不能写成Stu 变量名;
(2)初始化
即定义变量的同时赋予初值
这里继续沿用上面学生的声明:

 struct Stu
{char name[20];int age;char sex[5];char id[20];
}Stu1 = {"小明",16,"男","124410"}	//声明类型的同时定义变量Stu1
struct Stu Stu2 = {"小红",16,"女","124450"}; 
//另起一行定义结构体变量Stu2
  • 结构体的嵌套初始化:
struct Node
{int data;struct Point p;struct Node* next;
}n1 = {10, {4,5}, NULL}; //结构体嵌套初始化
struct Node n2 = {20, {5, 6}, NULL};//结构体嵌套初始化

5. 补充说明

结构体的声明一般是放在主函数之外的,故声明类型的同时定义的变量一般为全局变量。虽然语法也允许结构体的声明放在主函数中,不过一般不这么做。

二、结构体成员的访问

1. 结构体变量访问成员

结构变量的成员是通过点操作符 ‘ . ’ 访问的。点操作符接受两个操作数,形式为结构体变量名.成员变量名。如下面这段代码:

#include <stdio.h>
struct Stu
{char name[20];//名字int age;//年龄char sex[5];//性别char id[20];//学号
}Stu1 = { "小明",16,"男","124410" };//分号不能丢int main()
{printf("%s\n", Stu1.name);printf("%d\n", Stu1.age);printf("%s\n", Stu1.sex);printf("%s\n", Stu1.id);return 0;
}

运行结果:
在这里插入图片描述

2. 结构体指针访问成员

有时候我们得到的不是一个结构体变量,而是指向一个结构体的指针
那么此时我们通过另一个操作符 ‘->’ 进行访问。如下代码:

#include <stdio.h>
struct Stu
{char name[20];int age;
};void print(struct Stu* ps)
{printf("name = %s age = %d\n", (*ps).name, (*ps).age);//使用结构体指针访问指向对象的成员printf("name = %s age = %d\n", ps->name, ps->age);
}int main()
{struct Stu s = { "zhangsan", 20 };print(&s);//结构体地址传参return 0;
}

运行结果:
在这里插入图片描述

代码中的print函数的参数是一个结构体指针,故在进行参数传递时传的是结构体的地址(下面一部分还会说明),那么在print函数内部进行的成员访问实际上是通过结构体指针进行的。所以用到操作符 ‘->’ 。
由运行结果可以看出,使用操作符 ‘->’ 就等价于先解引用结构体指针得到结构体变量,再通过操作符 ‘ . ’ 进行成员访问。

三、结构体的传参

结构体的传参和变量的传参一样,分为值传递和地址传递。结构体在进行传参时一般用的都是地址传递,即传递结构体的地址。
原因函数传参的时候,参数是需要压栈的。如果传递一个结构体对象的时候,结构体过大,参数压栈的的系统开销比较大,所以会导致性能的下降。

本章完。

看完觉得有觉得帮助的话不妨点赞收藏鼓励一下,有疑问或有误地方的地方还恳请过路的朋友们留个评论,多多指点,谢谢朋友们!🌹🌹🌹

http://www.15wanjia.com/news/183962.html

相关文章:

  • 三亚网站制作网络推广运营优化
  • 国外黄土网站2016 网站建设需求
  • 做网站什么主题比较好创建销售网站多少钱
  • 极速网站制作网站访问大小 计算流量
  • 网站建设优化两千字东莞公司网站制作公司
  • 纵横天下营销型网站建设企业网站开发摘要
  • 网站备案网站名称怎么填长春建筑网站
  • 团队氛围建设 网站帮人做视频的网站
  • 如何设立网站wordpress可视化编辑器 windows
  • 珠海网站设计培训班襄阳作风建设年网站
  • outlook企业邮箱注册重庆seo顾问
  • 两学一做教育考试网站wordpress主题美容
  • 网站工程前端网站左侧导航代码
  • 网站运营者asp源码-漂亮企业源码大气公司网站模版
  • 怎么查看一个网站是哪家公司做的图书网站建设策划书1万字
  • 有域名做网站网站更新内容
  • 天津百度搜索网站排名软件工程师是什么专业
  • 做游戏网站公司搜索网站排名软件
  • 模型下载网站开发流程如何网上注册公司流程
  • 自己可以学着做网站吗外贸公司是什么类型的企业
  • 东山县建设银行网站织梦 别人 网站 模板
  • 自己做网站的二维码手机建网站优帮云
  • 网站建设标准依据乐清做网站的公司
  • 四川网站建设公司南桥网站建设
  • php装修公司网站源码泰州seo推广公司
  • 2024营业执照年审官网入口杭州seo技术培训
  • 安阳做网站电话莱芜论坛莱芜在线
  • 疗养院有必要做网站吗商务网站的建设与维护
  • 网站页面优化怎么做wordpress仿next主题
  • 网站免费推广建筑工程网络计划图绘制软件