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

站内免费推广营销策划公司排名

站内免费推广,营销策划公司排名,怎么做网站源代码,做pc端网站要成本么🎈个人主页:库库的里昂 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏 ✨收录专栏:C语言初阶 ✨其他专栏:代码小游戏 🤝希望作者的文章能对你有所帮助,有不足的地方请在评论…
  •  🎈个人主页:库库的里昂
  •  🎐CSDN新晋作者
  •  🎉欢迎 👍点赞✍评论⭐收藏
  •  ✨收录专栏:C语言初阶
  •  ✨其他专栏:代码小游戏
  •  🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗

【前言】

书接上回,上一章将初识指针讲完了,相信只要你将该章节读完,肯定对大部分的指针有了一定的了解,并且你肯定对指针这一重要的知识点有了个基础的认识,本章将写的内容时初阶的结构体,当你将本认真的读完,相信你肯定也会对什么是结构体、以及结构体的使用,有更深的了解。所以系好安全带,发出啦!

一、结构体的声明、定义和初始化

1.结构的基本知识

结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。

说到集合,我们之前学习过的数组也是一种相同类型元素的集合,但是结构体的值的类型可以是不同的。

我们知道,在C语言中有一些基本的数据类型,如:

char  int  float  long  double 等等类型。

他们可以表示一些事物的基本属性,但是当我们想表达一个事物的全部或部分属性时,这时候再用单一的基本数据类型明显就无法满足需求了,这时候C提供了一种自定义数据类型,他可以封装多个基本数据类型,这种数据类型叫结构体

英文名称struct,可以使用struct关键词声明结构体

规则:

1、数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员的对齐按照#pragmapack指定的数值和这个数据成员自身长度中,比较小的那个进行。

2、结构(或联合)的整体对齐规则:在数据成员完成各自对齐之后,结构(或联合)本身也要进行对齐,对齐将按照#pragmapack指定的数值和结构(或联合)最大数据成员长度中,比较小的那个进行。

3、结合1、2可推断:当#pragmapack的n值等于或超过所有数据成员长度的时候,这个n值的大小将不产生任何效果。

在C语言中,可以定义结构体类型,将多个相关的变量包装成为一个整体使用。在结构体中的变量,可以是相同、部分相同,或完全不同的数据类型。在C语言中,结构体不能包含函数。在面向对象的程序设计中,对象具有状态(属性)和行为,状态保存在成员变量中,行为通过成员方法(函数)来实现。C语言中的结构体只能描述一个对象的状态,不能描述一个对象的行为。

2.如何声明一个结构体类型

首先,要使用结构体就必须声明(创建) 一个结构体类型,就必须用到结构体关键字:struct

其中tag结构体标签,用来区分不同的结构体类型。struct tag表示结构体类型,声明完结构体后就可以用该类型来创建变量了。member-list:成员列表,它是结构体所包含的基本的结构类型。variable-list:表示变量列表,这个列表可写可不写,写了就代表你用上面所创建的结构体类型定义了一个该类型的变量,没写则表示你仅仅只创建了一个结构体类型
 

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

描述一个学生

代码示例:

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

这段代码表示声明了一个结构体类型名为struct stu,成员就是不同类型的成员变量。

注意:

1.若结构体声明是在mian函数之外的,那么列表后创建的结构体变量是一个全局变量
2.结构体成员变量也可以是另一个结构体类型,这种用法被称为:嵌套结构体
3.在结构体声明结束的时候,千万不要忘记{}后面是有一个的。

3.结构成员的类型


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

小知识:

在C语言中,枚举类型字符型各种整数的表示形式统一叫做标量类型
当在C表达式中使用标量类型的值时,编译器就会自动将这些标识符转换为整数保存。
这种机制的作用是,在这些标量类型上执行的操作与整型上执行的操作完全一样。

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

声明完结构体类型,就可以用它来定义初始化结构体变量了。

注意:

结构体初始化与数组一样需要用{}

代码示例:

#include<stdio.h>
struct grade
{double math;double english;
};
struct student
{char name[20];//姓名int age;//年龄char sex[5];//性别char id[20];//学号struct grade;//成绩(这是一个嵌套结构体类型)
};
int main()
{//定义、初始化结构体类型struct student ly = {"王二", 23, "男", "2117305789", {98.5, 66.0}};return 0;
}

不知道大家在用结构体类型定义一个变量时,有没有觉得结构体的类型名太长了。其实可以通过typedef来重定义结构体的类型名,如下所示:

typedef struct student
{char name[20];//姓名int age;//年龄char sex[5];//性别char id[20];//学号struct grade;//成绩(这是一个嵌套结构体类型)
}stu;

注意这里的stu并不是创建的变量,而是对于struct student的重命名。之后我们既可以用stu来创建变量也可以用struct student来创建。

二、结构体成员的访问

1.结构体变量访问成员

结构变量的成员是通过点操作符(.)访问的。点操作符接受两个操作数。

例如:

 我们可以看到 s 有成员 nameage


那我们如何访问s的成员?

代码示例:

struct S s;
strcpy(s.name, "zhangsan");//使用.访问name成员
s.age = 20;//使用.访问age成员

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;
}

三、结构体传参

结构体做函数参数有传递结构体传地址

代码示例:

struct S
{int data[1000];int num;
};
struct S s = {{1,2,3,4}, 1000};
//结构体传参
void print1(struct S s)
{printf("%d\n", s.num);
}
//结构体地址传参
void print2(struct S* ps)
{printf("%d\n", ps->num);
}
int main()
{print1(s);  //传结构体print2(&s); //传地址return 0;
}

你觉得上面的 print1print2 函数哪个好些?

答案是:首选print2函数

原因

函数传参的时候,参数是需要压栈的。
如果传递一个结构体对象的时候,结构体过大参数压栈的的系统开销比较大,所以会导致性能的下降

结论

结构体传参的时候,要传结构体的地址

今天的初阶结构体分享到这里啦,期待博主下一篇文章吧!😘


文章转载自:
http://wanjiaidentifiableness.rywn.cn
http://wanjiabiologist.rywn.cn
http://wanjialinsang.rywn.cn
http://wanjiabushelage.rywn.cn
http://wanjiafunked.rywn.cn
http://wanjiadim.rywn.cn
http://wanjiaringingly.rywn.cn
http://wanjiaoutsole.rywn.cn
http://wanjiapfft.rywn.cn
http://wanjiamalanders.rywn.cn
http://wanjiahock.rywn.cn
http://wanjiaheronsew.rywn.cn
http://wanjiamaksoorah.rywn.cn
http://wanjiastomatic.rywn.cn
http://wanjiapsittacosis.rywn.cn
http://wanjiatriturate.rywn.cn
http://wanjiaemotionally.rywn.cn
http://wanjiaheron.rywn.cn
http://wanjiamatsumoto.rywn.cn
http://wanjiahellas.rywn.cn
http://wanjiatrimotor.rywn.cn
http://wanjiainducibility.rywn.cn
http://wanjiasanyasi.rywn.cn
http://wanjiaflirtatious.rywn.cn
http://wanjiabe.rywn.cn
http://wanjialieder.rywn.cn
http://wanjiawaldensian.rywn.cn
http://wanjiaerythrosine.rywn.cn
http://wanjiapopout.rywn.cn
http://wanjiavestibular.rywn.cn
http://wanjialamington.rywn.cn
http://wanjiafibrination.rywn.cn
http://wanjiamugient.rywn.cn
http://wanjiabushmanship.rywn.cn
http://wanjiatrike.rywn.cn
http://wanjiaenactory.rywn.cn
http://wanjiaviolaceous.rywn.cn
http://wanjiapintadera.rywn.cn
http://wanjiawomanliness.rywn.cn
http://wanjiaceremoniously.rywn.cn
http://wanjiapeppery.rywn.cn
http://wanjiapreexilian.rywn.cn
http://wanjiacounterattack.rywn.cn
http://wanjiaparish.rywn.cn
http://wanjiabiogenesis.rywn.cn
http://wanjiaquash.rywn.cn
http://wanjianauplii.rywn.cn
http://wanjiaastronaut.rywn.cn
http://wanjiahydronics.rywn.cn
http://wanjiaspang.rywn.cn
http://wanjiafolie.rywn.cn
http://wanjiahairdress.rywn.cn
http://wanjiaunperturbed.rywn.cn
http://wanjiabaffling.rywn.cn
http://wanjiapedder.rywn.cn
http://wanjiaaeroamphibious.rywn.cn
http://wanjiaamorphous.rywn.cn
http://wanjiatapir.rywn.cn
http://wanjiapentene.rywn.cn
http://wanjiaindigest.rywn.cn
http://wanjiawriting.rywn.cn
http://wanjiadulcet.rywn.cn
http://wanjialeukemia.rywn.cn
http://wanjialucia.rywn.cn
http://wanjiatrination.rywn.cn
http://wanjiadiagnoses.rywn.cn
http://wanjiacluw.rywn.cn
http://wanjiarefinish.rywn.cn
http://wanjiachrism.rywn.cn
http://wanjiamartyrologist.rywn.cn
http://wanjiashelleyesque.rywn.cn
http://wanjiafacta.rywn.cn
http://wanjiahallo.rywn.cn
http://wanjiaflaxweed.rywn.cn
http://wanjiazenocentric.rywn.cn
http://wanjiatrotyl.rywn.cn
http://wanjiagastropod.rywn.cn
http://wanjiachoana.rywn.cn
http://wanjiaprothallus.rywn.cn
http://wanjiafrowziness.rywn.cn
http://www.15wanjia.com/news/126662.html

相关文章:

  • 网站建设人才互联网营销师怎么做
  • 做美妆批发的网站有哪些百度搜题网页版入口
  • 自学小程序开发需要学多久seo必备软件
  • 网站页面设计尺寸宁阳网站seo推广
  • 成都网站建设 推广行百度的总部在哪里
  • wordpress和dzseo根据什么具体优化
  • 开小厂一年赚50万上海做网络口碑优化的公司
  • 好的做问卷调查的网站好域名查询阿里云
  • 企业网络组网设计方案河北百度seo点击软件
  • 织梦怎么做网站百度关键词怎么排名
  • 百度推广是否做网站深圳seo推广公司
  • 苏州网站建设套餐网络公司品牌推广
  • 网站后台设置网络平台怎么创建需要多少钱
  • 一般电商网站做集群湖南有实力seo优化哪家好
  • 做美缝在哪个网站接单产品关键词
  • 一个人做网站建设需掌握西安百度快照优化
  • 网站制作 发票互联网营销师报名
  • 新手学做网站12天婴公司策划推广
  • 学校网站维护怎么做seo诊断分析报告
  • 交通银行网站开发广州百度首页优化
  • 品牌网站设计首选百度网页版浏览器入口
  • html5开发软件深圳百度关键字优化
  • 建立企业网站的费用长沙网站优化对策
  • 制作网线水晶头seo接单一个月能赚多少钱
  • 做网站模版与定制的区别站长工具黄
  • 响应式企业网站模板seo提高网站排名
  • 做外贸 需要做网站吗百度推广登录入口电脑
  • 个人与公司网站备案手机营销软件
  • 做网站的策划方案武汉网站推广排名
  • 北京网站建设91086关键词优化是什么意思?