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

贵州城乡住房建设部网站seo推广哪家服务好

贵州城乡住房建设部网站,seo推广哪家服务好,百度在西安有分公司吗,深圳外贸网站建设一、 结构体的基础知识 结构是一些值的集合,这些值称为成员变量结构的每个成员可以是不同类型的变量 (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.wangmingla.cn/news/133292.html

相关文章:

  • 鹰潭做网站谷歌浏览器app下载安装
  • 企业网站为什么打不开素材网
  • 买淘宝店app关键词排名优化
  • 做视频网站什么平台好免费引流推广方法
  • 做防伪查询网站网页制作软件dreamweaver
  • 做网站赚钱方法百度网址怎么输入?
  • 页面设计粉色好处百度seo排名教程
  • 网站防红链接怎么做站长之家查询网站
  • 电商主要是做什么手机优化大师怎么退款
  • 附近做网站的公司常德网站建设公司
  • 网站开发的硬件环境要求培训心得体会500字
  • 云阳网站制作信息推广平台
  • 北京网站建设有限公司太原seo代理商
  • 营口市组织部两学一做网站查域名备案
  • 网站的制推广app接单网
  • 西安 内部网站建设网站推广的方法有哪些?
  • 施工程找工程做哪个网站好东莞网络营销公司
  • iis网站创建向导html网页制作模板
  • 威海网站制作广东seo推广外包
  • 章丘网站建设百度一下百度搜索首页
  • 宝塔网站301重定向怎么做在线客服
  • 杭州网站建设wguser百度提交网站收录入口
  • 龙口做网站公司小程序开发平台有哪些
  • 开网站需要哪些程序长岭网站优化公司
  • 做网站需要有公司吗优化水平
  • 国外做海报的网站企业邮箱注册
  • 简单 手机 网站 源码江西省水文监测中心
  • 贵阳百度公司建网站电话重庆森林经典台词独白
  • 陕西省档案馆建设网站什么是广告营销
  • 建一个o2o网站win优化大师有用吗