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

新疆生产建设兵团社会保障网站百度热搜榜在哪里看

新疆生产建设兵团社会保障网站,百度热搜榜在哪里看,做兼职的网站 知乎,重庆市政府app下载一、 结构体的基础知识 结构是一些值的集合,这些值称为成员变量结构的每个成员可以是不同类型的变量 (1)结构体的声明 写法一: 注: 括号后边的分号不能忘结构体末尾可以不创建变量,在主函数中再创建 struc…

一、 结构体的基础知识

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

(1)结构体的声明

写法一:

注:

  • 括号后边的分号不能忘
  • 结构体末尾可以不创建变量,在主函数中再创建
struct Book
{char name[20]; //书名int price; //价格
};

写法二:

注:

  • 在结构体末尾和主函数中都可以创建变量
  • 区别:结构体后边直接创建的是全局变量,在主函数中创建的是局部变量

在这里插入图片描述
写法三:

注:

  • 可以利用 typedef 重命名或定义结构体
  • 若使用 typedef 定义,则结构体末尾不能创建全局变量,而应该写结构体新的名称,新名称后边的分号不能丢失
  • 若非要创建全局变量,需单独创建
  • 此处,新的结构体名称 Book 代替的是 struct Book 这一整体,在创建结构体变量时,可直接写Book b5;来代替struct Book b5;
typedef struct Book
{char name[20];int price;
}Book; //不可以创建全局变量,此处是新的结构体名//如果实在想使用全局变量,需单独创建
Book b3;
Book b4;int main()
{struct Book b1;struct Book b2;Book b5;Book b6;return 0;
}

(2)结构成员的类型

  • 结构的成员可以是标量、数组、指针,甚至是其他结构体
struct S
{char c;char arr[10];int *p;
};struct B
{int a;struct S s;double d;
};int main()
{return 0;
}

(3)结构体变量的初始化

例1:

struct S
{char c;char arr[10];int* p;
};struct B
{int a;struct S s;double d;
};int main()
{struct S s1 = { 'c',"张三",NULL }; //初始化int a = 10;struct B s2 = { 100,{'q',"list",&a},3.14 }; //结构体嵌套初始化return 0;
}

例2:

  • 初始化时可以按顺序初始化,也可以不按顺序
struct Book
{char name[20];int price;
};int main()
{//按顺序初始化struct Book b1 = {"鹏哥C语言", 66};//不按顺序初始化struct Book b2 = { .price = 80, .name = "杭哥C++"};//打印printf("%s %d\n", b1.name, b1.price);printf("%s %d\n", b2.name, b2.price);return 0;
}

在这里插入图片描述

二、 结构体成员的访问

访问结构体成员的方式:

  • 结构体变量 . 结构体成员
  • 结构体指针 -> 结构体成员
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>struct Book
{char name[20];int price;
};void print(struct Book* p)
{printf("%s %d\n", p->name, p->price);
}int main()
{struct Book b1 = {"鹏哥C语言", 60};struct Book b2 = { .price = 80, .name = "杭哥C++"};struct Book b3 = { "JAVA",70 };//结构体变量.结构体成员printf("%s %d\n", b1.name, b1.price);printf("%s %d\n", b2.name, b2.price);//结构体指针->结构体成员struct Book* p1 = &b3;print(p1); //结构体地址传参return 0;
}

在这里插入图片描述

三、结构体传参

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>struct S
{int arr[100];int n;
};void print1(struct S ss)
{for (int i = 0; i < 10; i++){printf("%d ", ss.arr[i]);}printf("\n%d\n", ss.n);
}void print2(struct S* ps)
{for (int i = 0; i < 10; i++){printf("%d ", ps->arr[i]);}printf("\n%d\n", ps->n);
}int main()
{struct S s = { {1,2,3,4,5}, 100 };print1(s);print2(&s);return 0;
}

在这里插入图片描述

❗上面的 print1 和 print2 函数哪个好些❓

  • 答案:首选 print2 函数。

原因:

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

结论:

  • 结构体传参的时候,要传结构体的地址。
http://www.ds6.com.cn/news/35547.html

相关文章:

  • 第寒网站建设百度本地惠生活推广
  • 公司网站建设的视频教程网络营销技巧
  • 做网站如何备案陕西seo公司
  • 网站建设速度如何解决注册推广
  • 百度新网站收录网站编辑怎么做
  • 免费编程网站长沙疫情最新情况
  • 分享惠网站怎么做自助建站系统代理
  • 石家庄长安区网站建设公司个人网站怎么做
  • 徐典超 网站建设广州网络营销产品代理
  • 合肥企业网站制作公司百度推广点击软件
  • 上海有哪些做网站的北京seo的排名优化
  • 石家庄便宜网站制作关键词优化工具
  • 网站建设维护培训厦门百度推广开户
  • 动漫做h在线观看网站社会新闻热点事件
  • wordpress管理员评论在哪儿设置seo关键词快速排名软件
  • 合肥知名网站制作公司巨量千川广告投放平台
  • 做网站安全维护是什么东东品牌推广软文
  • 邵阳网站推广网站seo方法
  • 网站信息内容建设实施办法互联网营销课程体系
  • 岳阳公司做网站九江seo优化
  • 网络营销市场zac博客seo
  • 如何建设一家网站找广告商的平台
  • 空间设计和室内设计的区别陕西seo主管
  • b站推广网站动漫网络广告营销典型案例
  • 宁国做网站宁波企业seo推广
  • 郑州web网站建设公司比百度还强大的搜索引擎
  • 建筑施工图纸培训班郑州seo阿伟
  • 海南第六建设工程有限公司网站seo如何快速排名百度首页
  • 网站开发就业怎么样免费的模板网站
  • 怎么自己弄网站广告设计需要学什么