首页 > 其他分享 >结构体-C语言

结构体-C语言

时间:2023-03-28 23:14:44浏览次数:42  
标签:p2 p1 struct int C语言 today 结构

结构和本地变量一样,在函数内部声明的结构类型只能在函数内部使用

所以通常在函数外部声明的结构类型,这样就可以被多个函数所使用了

以下类似代码参考:

 1 #include <stdio.h>
 2 
 3 struct date{
 4         int month;
 5         int day;
 6         int year;
 7     };
 8 
 9 int main(int argc,char const *argv[])
10 {
11     struct date today;
12     today.month=07;
13     today.day=31;
14     today.year=2014;
15     printf("Today's date is %i-%i-%i.\n",today.year,today.month,today.day);
16     return 0;
17 }

声明结构的形式:

一:

1 struct point{
2 
3   int x;
4 
5   int y;
6 
7 };
8 
9 struct point p1,p2;

 

p1,p2都是point里面有x和y的值

二:

1 struct{
2 
3   int x;
4 
5   int y;
6 
7 } p1,p2;

 

p1,p2都是一种无名结构,里面有x和y

三:

1 struct point{
2 
3   int x;
4 
5   int y;
6 
7 } p1,p2;

 

p1,p2都是point里面有x和y的值

结构的初始化:

struct date today={07,31,2014};#每一项都赋值

struct date thismonth={.month=7,.year=2014};#只对个别元素赋值,未被赋值的元素,初始化为0

数组与结构在成员方面的区别:

数组用[]运算符和下标访问其成员

a[0]=10;

结构用.运算符和名字访问其成员

today.day

student.firstName

p1.x

p2.y

结构运算:

要访问整个结构,要用结构变量的名字

对于整个结构,可以做赋值、取地址,也可以传递给函数赋值

p1=(struct point){5,10};//相当于p1.x=5,p1.y=10

p1=p2;//相当于p1.x=p2.x,p1.y=p2.y

结构指针:

和数组不同,结构变量的名字并不是结构变量的地址,必须使用&运算符

sruct date *pDate=&today;

结构作为函数参数:

int numberOfDays(struct date d)

整个结构可以作为参数的值传入函数

这时候是在函数内新建一个结构变量,并复制调用者的结构的值

也可以返回一个结构

输入结构:

没有直接的方式可以一次scanf一个结构

我们可以打算写一个函数来读入结构

指向结构的指针:

 1 struct date{
 2 
 3   int month;
 4 
 5   int day;
 6 
 7   int year;
 8 
 9 } myday;
10 
11 struct date *p=&myday;
12 
13 (*p).month =12;//下面的作用等同
14 
15 p->month=12;

 

用->表示指针所指的结构变量中的成员

标签:p2,p1,struct,int,C语言,today,结构
From: https://www.cnblogs.com/TiAmo-bai/p/17267127.html

相关文章

  • 基于farrow结构的时间同步算法matlab仿真
    1.算法描述         采样速率转换(SRC)在通信中非常普遍。一般有两种方法:一种是通过D/A重构信号,再采样,从而实现采样速率的转换;另一种是利用数字滤波器直接进行采样......
  • 深入理解 python 虚拟机:pyc 文件结构
    深入理解python虚拟机:pyc文件结构在本篇文章当中主要给大家介绍一下.py文件在被编译之后对应的pyc文件结构,pyc文件当中的一个核心内容就是python字节码。pyc......
  • 跟着查老四学Python Day 2:控制结构与循环
    老猫:这是之前我们制定的第二天的学习计划第二天:控制结构与循环学习条件判断(if-elif-else结构)学习循环结构(for循环、while循环)学习列表(list)和元组(tuple)的基本操作动手编写一......
  • 【数据结构与算法】算法学习大纲
    前言排序算法查找算法二叉树算法图算法分治算法回溯算法贪心算法动态规划算法......
  • rust 项目的文件结构
    发文原因很多初学者都使用cargonew[project_name]来创建项目,并直接在main.rs文件中实现所有功能。这样是不合理的,并不符合我们cargo的开发规范。下面将简单的介......
  • 第一篇 计算机网络基础 - 概述 - 【 发展历史 + 网络层次结构 + Tcp协议簇 + 网络传输
    计算机网络概述1、什么是计算机网络计算机网络主要由一些通用的、可编程的硬件互联而成,通过这些硬件,可以传送不同类型的数据,并且可以支持广泛和日益增长的应用......
  • [软件体系结构/架构]零拷贝技术(Zero-copy)[转发]
    0前言近期遇到难题:1个大数据集的查询导出API,因从数据库查询后占用内存极大,每次调用将消耗近100MB的JVM内存资源。故现需考虑研究和应用零拷贝技术。如下全文摘自:看一......
  • 软件体系结构 章一
    章一 1)计算机系统:适当地组织在一起的一系列系统元素的集合,这些系统元素相互配合、相互协作,通过对信息的处理而完成预先定义的目标。系统元素有:计算机软件、计算机硬件、人......
  • 章二 软件体系结构的构建模式(1)
     章二 软件体系结构的构建模式一个设计良好的通用模式往往是这个工程领域技术成熟的标志。1、管道过滤模式1)概述:每个功能模块都有一组输入和输出;功能模块对输入数据流进......
  • 章二 软件体系结构的构建模式(3)
    章二软件体系结构的构建模式(3)一、知识库模式1、知识库模式特征采用知识库模式构建的系统通常有两个截然不同的功能构件: (1)中央数据单元构件:代表系统当前的各种状态; (2)一......