广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言结构体数组常用的赋值方法有哪些
  • 290
分享到

C语言结构体数组常用的赋值方法有哪些

2023-07-02 09:07:16 290人浏览 安东尼
摘要

这篇“C语言结构体数组常用的赋值方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言结构体数组常用的赋值方法有哪些

这篇“C语言结构体数组常用的赋值方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言结构体数组常用的赋值方法有哪些”文章吧。

    一、按照成员变量进行赋值(麻烦,好理解,字符串赋值需要strcpy)

    这里使用了一个Init函数,为了在进一步说明传参的使用。实际上赋值按照需要放在主函数就行。

    (使用strcpy函数需要添加头文件string.h)

    #include <stdio.h>#include <string.h>typedef struct date  //定义了一个日期结构体,包含年月日三个成员 {int year;int mouth;int day;}datea;typedef struct  schedule//定义了一个日程结构体,包含日期,和活动两个成员变量 {char name[10];datea date;char activity[200];}sch;int Init(sch *name)  //初始化函数 数组用指针接收 {strcpy(name[0].name,"jack");name[0].date.year = 2021; //使用级联运算 name[0].date.mouth = 11;name[0].date.day = 11;strcpy(name[0].activity,"Taobao shooping");strcpy(name[1].name,"Amy");name[1].date.year=2021;name[1].date.mouth = 11;name[1].date.day = 12;strcpy(name[1].activity,"play piano"); } int main(){sch name[2] ;Init(name);for(int i=0;i<2;i++){printf("%s %d %d %d \n%s \n",name[i].name,name[i].date.year,name[i].date.mouth,name[i].date.day,name[i].activity);}}

    二、对数组整体进行赋值。(一次性需要把所有的都添加进去,不需要strcpy)        

    (1) 在声明数组的时候,进行赋值

    可以换行,中间的结构体嵌套需要再次使用花括号括起来(这里没有传参,放在被调函数不能这么赋值)。

    sch name[2] = {{"jack",{2021,11,11},"Taobao Shopping"},{"jack",{2021,11,11},"Taobao Shopping"}};

    也可以直接写下去:

    typedef struct student {    int sno;    char name[20];} stu; int main() {    stu stua[5] = {1001,"jack",1002,"Amy"};

    输出结果:

    C语言结构体数组常用的赋值方法有哪些

    这里举了个例子,定义了一维数组name,将name传到被调函数的时候,只剩下了首地址,对其进行赋值是[Error] declaration of 'sch name' shadows a parameter  ,就是说缺少参数,因为只有首地址,并不是完整的数组,所以不能这么赋值。

    C语言结构体数组常用的赋值方法有哪些

    (2)对有规律的数据赋值,比如学生结构体的学号是有规律的。

    #include <stdio.h> typedef struct student  //定义了学生结构体 {int sno;char name ;}stu; stu stua[5];  //5名学生的结构体数组  int main(){for(int i=1;i<5;i++){stua[i].sno=i;  //循环赋值,5名学生的学号依次为1-5 }return 0;}

     三、使用输入进行赋值

     依然用学生为例子。

    (1)直接使用for,配合动态分配内存,这里按照数据库的数据类型,我将学号定义为char型,实际上定义为int 即可。

    #include <stdio.h>#include <stdlib.h> typedef struct student {    char sno[6];    char name[20];} stu; int main() {int N;scanf("%d",&N);//获得学生个数     stu * stua = (stu *)malloc(N * sizeof(stua));  //动态分配了结构体变量stua的长度         //方法一:用for给结构体赋值for(int i=0;i<N;i++){scanf("%s %s",stua[i].sno,stua[i].name);  } for(int i=0;i<N;i++){printf("%s %s\n",stua[i].sno,stua[i].name); } }

    输出结果:

    C语言结构体数组常用的赋值方法有哪些

    (2)调用函数赋值,我们知道,结构体数组中,数组有多个元素,每个数组元素又有多个结构体成员变量,所以将每个数组元素用函数分别去赋值。

    #include <stdio.h>#include <stdlib.h> typedef struct student {  //定义结构体     char sno[6];         //注意学号为char     char name[20];} stu;  stu getstu(void)         //结构体函数 {    stu tem;     scanf("%s",tem.sno);//因为是字符串,不用加取址符&,否则此处为&p.x    scanf("%s",tem.name);    return tem;} int main() {int N;scanf("%d",&N);//获得学生个数     stu * stua = (stu *)malloc(N * sizeof(stua));  //动态分配了结构体变量stua的长度         //方法二:调用函数 for(int i=0;i<N;i++){stua[i] = getstu(); }  for(int i=0;i<N;i++){printf("%s %s\n",stua[i].sno,stua[i].name); } }

     输出结果:

    C语言结构体数组常用的赋值方法有哪些

    (3)通过指针给到其他函数去赋值(如果你看到这,才到了精髓,传参赋值)

    #include <stdio.h>#include <stdlib.h> typedef struct student {  //定义结构体     char sno[6];         //注意学号为char     char name[20];} stu;  void getstu(stu *stua)         //返回值为空即可 {        scanf("%s",stua -> sno);//因为是字符串,不用加取址符&,否则此处为&stua.x    scanf("%s",stua -> name);} int main() {int N;scanf("%d",&N);//获得学生个数     stu * stua = (stu *)malloc(N * sizeof(stua));  //动态分配了结构体变量stua的长度         //方法二:函数传参赋值 for(int i=0;i<N;i++){getstu(&stua[i]);} for(int i=0;i<N;i++){printf("%s %s\n",stua[i].sno,stua[i].name); } }

    执行结果:

    C语言结构体数组常用的赋值方法有哪些

    以上就是关于“C语言结构体数组常用的赋值方法有哪些”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网其他教程频道。

    --结束END--

    本文标题: C语言结构体数组常用的赋值方法有哪些

    本文链接: https://www.lsjlt.com/news/340900.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • C语言结构体数组常用的赋值方法有哪些
      这篇“C语言结构体数组常用的赋值方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言结构体数组常用的赋值方法有哪些...
      99+
      2023-07-02
    • c语言结构体数组如何赋值
      要赋值C语言结构体数组,可以通过以下几种方式:1. 逐个赋值:使用赋值运算符(=)逐个为数组中的每个元素赋值。```cstruct ...
      99+
      2023-08-08
      c语言
    • c语言数组赋值的方法有哪些
      在C语言中,数组赋值的方法有以下几种:1. 逐个赋值:通过遍历数组的每个元素,逐个给数组元素赋值。```cint arr[5];ar...
      99+
      2023-08-30
      c语言
    • C语言结构体数组常用的三种赋值方法(包含字符串)
      目录一、按照成员变量进行赋值(麻烦,好理解,字符串赋值需要strcpy)二、对数组整体进行赋值。(一次性需要把所有的都添加进去,不需要strcpy)     &n...
      99+
      2022-11-13
    • C语言结构体中的char数组怎么赋值
      这篇文章主要介绍了C语言结构体中的char数组怎么赋值,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前景提示定义一个结构体,结构体中有两个变量,其中一个是char类型的数组,...
      99+
      2023-06-29
    • C语言数组赋值方法的优缺点有哪些
      C语言数组赋值方法的优缺点如下:优点:1. 直接赋值:直接给数组元素赋值,简单直接。2. 循环赋值:通过循环语句给数组元素逐个赋值,...
      99+
      2023-09-26
      C语言
    • c语言结构体循环赋值的方法是什么
      C语言结构体循环赋值的方法可以使用循环语句(如for循环)来遍历结构体数组,并对每个结构体成员逐个赋值。具体步骤如下:1. 定义一个...
      99+
      2023-09-04
      c语言
    • 详解C语言结构体中的char数组如何赋值
      目录前景提示一.char数组类型的处理1.结构体初始化2.结构体内数据赋值(简单法)二.char数组指针类型的处理1.结构体初始化2.结构体内数据赋值3.结构体内输出数据三.全部代码...
      99+
      2022-11-13
    • c语言结构体数组的用法是什么
      在C语言中,结构体数组是一种特殊的数据类型,可以用于存储和操作多个结构体对象。结构体数组由多个相同类型的结构体对象组成,每个对象可以...
      99+
      2023-10-27
      c语言
    • C 语言结构体的使用方法
      目录C 语言结构体使用1. 结构体的声明和定义1.1 介绍1.2定义的几种类型2. 结构体初始化3. 结构体成员访问4. 结构体传参C 语言结构体使用 1. 结构体的声明和定义 1....
      99+
      2022-11-12
    • c语言struct数组赋值的方法是什么
      在C语言中,可以通过循环遍历的方式来给结构体数组赋值。具体步骤如下:1. 定义结构体:首先要定义一个结构体类型,包含需要赋值的各个字...
      99+
      2023-09-04
      c语言
    • go语言结构体定义有哪些方法
      go语言结构体定义的方法有:1、直接定义结构体字段;2、使用嵌入结构体;3、定义带有方法的结构体;4、使用指针类型作为结构体字段;5、使用数组或切片作为结构体字段。在Go语言中,可以使用结构体来定义一组相关字段的集合,这些字段可以是基本数据...
      99+
      2023-12-12
      go语言 结构体
    • C语言结构体的具体使用方法
      目录初识C语言结构体1.为什么要有结构体2.结构体的定义2.1结构体类型的定义2.2定义结构体普通变量及访问2.3定义结构体指针变量及访问初识C语言结构体 1.为什么要有结构体 (1...
      99+
      2022-11-12
    • go语言结构体初始化及赋值的方法是什么
      在Go语言中,结构体的初始化及赋值可以通过以下两种方法进行: 字面量初始化:直接使用结构体类型的名称,并在花括号内指定字段的初始值...
      99+
      2023-10-25
      go语言
    • c语言指针数组赋值的方法是什么
      在C语言中,可以通过以下两种方式给指针数组赋值:1. 逐个赋值:可以使用循环结构逐个赋值指针数组的每个元素。例如:```int ar...
      99+
      2023-08-30
      c语言
    • c语言字符数组赋值的方法是什么
      C语言字符数组可以通过以下几种方法进行赋值:1. 使用字符串常量赋值:可以直接将一个字符串常量赋值给字符数组。例如:```cchar...
      99+
      2023-08-29
      c语言
    • vba数组赋值的方法有哪些
      VBA中有几种常用的方式可以给数组赋值:1. 直接赋值:使用数组的索引位置直接赋值,例如:array(0) = 1、array(1)...
      99+
      2023-09-14
      vba
    • C语言数据结构与算法排序的方法有哪些
      这篇文章主要介绍“C语言数据结构与算法排序的方法有哪些”,在日常操作中,相信很多人在C语言数据结构与算法排序的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言数据结构与算法排序的方法有哪些”的疑...
      99+
      2023-06-22
    • C语言声明数组并赋值的方法是什么
      在C语言中,可以使用以下两种方法声明数组并赋值: 逐个元素赋值:在声明数组时,可以使用大括号 {} 来初始化数组的元素,每个元素...
      99+
      2023-10-27
      c语言
    • vba给数组赋值的方法有哪些
      VBA给数组赋值的方法有以下几种:1. 直接赋值:通过使用`=`号将一个数组赋值给另一个数组。```vbaDim arr1() As...
      99+
      2023-09-26
      vba
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作