精华内容
下载资源
问答
  • C语言结构体实例

    2019-04-11 17:32:27
    C语言结构体实例,很简单,配套郝斌老师的数据结构
  • c语言结构体实例

    2013-09-25 10:12:35
    c语言结构体实例,详细的说明了c语言结构体的应用,让你更容易掌握
  • 结构体实例(包括共用体)和类实例的初始化方法完全相同,二者都可以应用于继承层次中。不同点是结构体(包括共用体)默认成员为public,而类默认成员是private型的。  一、若类和结构体所有数据成员均为public型...
  • c语言-结构体实例笔记

    千次阅读 2021-05-21 13:04:31
    结构体实例 实例一览: 使用结构体存储学生的信息 Store information of a student using structure 计算二者距离(以英寸英尺为单位) Add two distances (in inch-feet) 通过结构体传递给函数来计算两个...

    结构体实例

    在这里插入图片描述

    实例一览:

    • 使用结构体存储学生的信息

      Store information of a student using structure

    • 计算二者距离(以英寸英尺为单位)

      Add two distances (in inch-feet)

    • 通过结构体传递给函数来计算两个复数相加

      Add two complex numbers by passing structures to a function

    • 计算两个时间段之间的差

      Calculate the difference between two time periods

    • 使用结构体存储10名学生的信息

      Store information of 10 students using structures

    • 使用结构体存储n名学生的信息

      Store information of n students using structures

    Store information of a student using structure

    #include <stdio.h>
    struct student {
        char name[50];
        int roll;
        float marks;
    } s;
    
    int main() {
        printf("Enter information:\n");
        printf("Enter name: ");
        fgets(s.name, sizeof(s.name), stdin);
    
        printf("Enter roll number: ");
        scanf("%d", &s.roll);
        printf("Enter marks: ");
        scanf("%f", &s.marks);
    
        printf("Displaying Information:\n");
        printf("Name: ");
        printf("%s", s.name);
        printf("Roll number: %d\n", s.roll);
        printf("Marks: %.1f\n", s.marks);
    
        return 0;
    }
    

    输出:

    Enter information:
    Enter name: Jack
    Enter roll number: 23
    Enter marks: 34.5
    Displaying Information:
    Name: Jack
    Roll number: 23
    Marks: 34.5
    

    在此程序中,创建了一个学生结构体。该结构有三个成员:name (string),roll (integer) 和 marks (float)。

    然后,创建一个结构变量s来存储信息并将其显示在屏幕上。

    Add two distances (in inch-feet)

    12英寸等于1英尺。

    #include <stdio.h>
    
    struct Distance {
       int feet;
       float inch;
    } d1, d2, result;
    
    int main() {
       // take first distance input
       printf("Enter 1st distance\n");
       printf("Enter feet: ");
       scanf("%d", &d1.feet);
       printf("Enter inch: ");
       scanf("%f", &d1.inch);
     
       // take second distance input
       printf("\nEnter 2nd distance\n");
       printf("Enter feet: ");
       scanf("%d", &d2.feet);
       printf("Enter inch: ");
       scanf("%f", &d2.inch);
       
       // adding distances
       result.feet = d1.feet + d2.feet;
       result.inch = d1.inch + d2.inch;
    
       // convert inches to feet if greater than 12
       while (result.inch >= 12.0) {
          result.inch = result.inch - 12.0;
          ++result.feet;
       }
       printf("\nSum of distances = %d\'-%.1f\"", result.feet, result.inch);
       return 0;
    }
    

    输出:

    Enter 1st distance
    Enter feet: 23
    Enter inch: 8.6
    
    Enter 2nd distance
    Enter feet: 34
    Enter inch: 2.4
    
    Sum of distances = 57'-11.0"
    

    在此程序中,定义了一个结构距离。 该结构具有两个成员:

    feet - integer
    inch - float

    创建了结构体Distance的两个变量d1和d2。 这些变量以英尺和英寸为单位存储距离。

    然后,计算这两个距离的总和并将其存储在结果变量中。最后,把结果打印在屏幕上。

    Add two complex numbers by passing structures to a function

    #include <stdio.h>
    typedef struct complex {
        float real;
        float imag;
    } complex;
    
    complex add(complex n1, complex n2);
    
    int main() {
        complex n1, n2, result;
    
        printf("For 1st complex number \n");
        printf("Enter the real and imaginary parts: ");
        scanf("%f %f", &n1.real, &n1.imag);
        printf("\nFor 2nd complex number \n");
        printf("Enter the real and imaginary parts: ");
        scanf("%f %f", &n2.real, &n2.imag);
    
        result = add(n1, n2);
    
        printf("Sum = %.1f + %.1fi", result.real, result.imag);
        return 0;
    }
    
    complex add(complex n1, complex n2) {
        complex temp;
        temp.real = n1.real + n2.real;
        temp.imag = n1.imag + n2.imag;
        return (temp);
    }
    

    输出:

    For 1st complex number
    Enter the real and imaginary parts: 2.1
    -2.3
    
    For 2nd complex number
    Enter the real and imaginary parts: 5.6
    23.2
    Sum = 7.7 + 20.9i
    

    在此程序中,声明了一个名为complex的结构体。 它有两个成员:real和imag。 然后,我们从该结构中创建了两个变量n1和n2。

    这两个结构体变量被传递给add()函数。 该函数计算总和并返回包含该总和的结构体。

    最后,在main()函数中打印出复数的总和。

    Calculate the difference between two time periods

    #include <stdio.h>
    struct TIME {
       int seconds;
       int minutes;
       int hours;
    };
    
    void differenceBetweenTimePeriod(struct TIME t1,
                                     struct TIME t2,
                                     struct TIME *diff);
    
    int main() {
       struct TIME startTime, stopTime, diff;
    
       printf("Enter the start time. \n");
       printf("Enter hours, minutes and seconds: ");
       scanf("%d %d %d", &startTime.hours,
             &startTime.minutes,
             &startTime.seconds);
    
       printf("Enter the stop time. \n");
       printf("Enter hours, minutes and seconds: ");
       scanf("%d %d %d", &stopTime.hours,
             &stopTime.minutes,
             &stopTime.seconds);
    
       // Difference between start and stop time
       differenceBetweenTimePeriod(startTime, stopTime, &diff);
       printf("\nTime Difference: %d:%d:%d - ", startTime.hours,
              startTime.minutes,
              startTime.seconds);
       printf("%d:%d:%d ", stopTime.hours,
              stopTime.minutes,
              stopTime.seconds);
       printf("= %d:%d:%d\n", diff.hours,
              diff.minutes,
              diff.seconds);
       return 0;
    }
    
    // Computes difference between time periods
    void differenceBetweenTimePeriod(struct TIME start,
                                     struct TIME stop,
                                     struct TIME *diff) {
       while (stop.seconds > start.seconds) {
          --start.minutes;
          start.seconds += 60;
       }
       diff->seconds = start.seconds - stop.seconds;
       while (stop.minutes > start.minutes) {
          --start.hours;
          start.minutes += 60;
       }
       diff->minutes = start.minutes - stop.minutes;
       diff->hours = start.hours - stop.hours;
    }
    

    输出:

    Enter the start time.
    Enter hours, minutes and seconds: 13
    34
    55
    Enter the stop time.
    Enter hours, minutes and seconds: 8
    12
    15
    
    Time Difference: 13:34:55 - 8:12:15 = 5:22:40
    

    在此程序中,要求用户输入两个时间段,这两个时间段分别存储在结构体变量startTime和stopTime中。

    然后,函数differenceBetweenTimePeriod()计算时间段之间的差。 在main()函数中显示结果而不返回它(使用引用技术调用)。

    Store information of 10 students using structures

    #include <stdio.h>
    struct student {
        char firstName[50];
        int roll;
        float marks;
    } s[10];
    
    int main() {
        int i;
        printf("Enter information of students:\n");
    
        // storing information
        for (i = 0; i < 5; ++i) {
            s[i].roll = i + 1;
            printf("\nFor roll number%d,\n", s[i].roll);
            printf("Enter first name: ");
            scanf("%s", s[i].firstName);
            printf("Enter marks: ");
            scanf("%f", &s[i].marks);
        }
        printf("Displaying Information:\n\n");
    
        // displaying information
        for (i = 0; i < 5; ++i) {
            printf("\nRoll number: %d\n", i + 1);
            printf("First name: ");
            puts(s[i].firstName);
            printf("Marks: %.1f", s[i].marks);
            printf("\n");
        }
        return 0;
    }
    

    输出:

    Enter information of students: 
    
    For roll number1,
    Enter name: Tom
    Enter marks: 98
    
    For roll number2,
    Enter name: Jerry
    Enter marks: 89
    .
    .
    .
    Displaying Information:
    
    Roll number: 1
    Name: Tom
    Marks: 98
    .
    .
    .
    

    在此程序中,将创建一个学生结构体。 该结构具有三个成员:name (string), roll (integer) and marks (float)。

    然后,我们创建了具有5个元素的结构体数组s,以存储5个学生的信息。

    该程序使用for循环,从用户处获取5名学生的信息,并将其存储在结构体数组中。 然后使用另一个for循环,将用户输入的信息将显示在屏幕上。

    Store information of n students using structures

    该程序要求用户存储noOfRecords的值,并使用malloc()函数动态地为noOfRecords结构体变量分配内存。

    #include <stdio.h>
    #include <stdlib.h>
    struct course {
      int marks;
      char subject[30];
    };
    
    int main() {
      struct course *ptr;
      int noOfRecords;
      printf("Enter the number of records: ");
      scanf("%d", &noOfRecords);
    
      // Memory allocation for noOfRecords structures
      ptr = (struct course *)malloc(noOfRecords * sizeof(struct course));
      for (int i = 0; i < noOfRecords; ++i) {
        printf("Enter subject and marks:\n");
        scanf("%s %d", (ptr + i)->subject, &(ptr + i)->marks);
      }
    
      printf("Displaying Information:\n");
      for (int i = 0; i < noOfRecords; ++i) {
        printf("%s\t%d\n", (ptr + i)->subject, (ptr + i)->marks);
      }
    
      free(ptr);
    
      return 0;
    }
    

    输出:

    Enter the number of records: 2
    Enter subject and marks:
    Science 82
    Enter subject and marks:
    DSA 73
    
    Displaying Information:
    Science     82
    DSA     73
    

    文章来自微信公众号:内卡巴拉之树

    欢迎关注:
    在这里插入图片描述

    展开全文
  • golang结构体实例

    2021-08-11 20:59:57
    golang结构体实例化的方式非常多,以下列举出本人了解的 先说开在栈上的 1.先定义,后赋值 type Test struct { a, b, c int32 } var test Test 2.定义赋值,同时进行 type Test struct { a, b, c int32 } t := ...

    golang结构体实例化的方式非常多,以下列举出本人了解的

    先说开在栈上的
    1.先定义,后赋值

    type Test struct {
    	a, b, c int32
    }
    var test Test
    

    2.定义赋值,同时进行

    type Test struct {
    	a, b, c int32
    }
    t := Test{1,2,3} 或者 t := Test{}
    

    3.不需要结构体定义,直接用匿名结构体类型定义变量

    var t struct {
    	a, b, c int32
    } 
    

    4.在3的基础上同时赋值

    var t = struct{a, b, c int32 }{1,2,3}
    

    再说开在堆上的:
    1.

    type Test struct {
    	a, b, c int32
    }
    var test = new(Test)
    
    type Test struct {
    	a, b, c int32
    }
    var test = &Test{1,2,3}
    
    	var t  = &struct{ a, b, c int32 }{1,2,3}
    

    最后的最后,来看一个小例子:

    	test :=  []struct {
    		a, b, c int32
    	}{
    		{1, 2, 3},
    		{0,2,2},
    		{0,0,0},
    		{-1,1,0},
    		{math.MaxInt32,1,math.MinInt32},
    	}
    
    展开全文
  • java Udp 收发结构体实例 Socket编程 Udp收发大数据 单向传输 无需握手 广播 指定ip
  • Go 语言通过反射获取结构体信息和结构体实例的地址 //获取结构体实例字段的地址 func GetFieldsOfStructAddr(s interface{}, filedNames []string) (res []interface{}, err error) { v := reflect.ValueOf(s) /...

    Go 语言通过反射获取结构体信息和结构体实例的地址

    //获取结构体实例字段的地址
    func GetFieldsOfStructAddr(s interface{}, filedNames []string) (res []interface{}, err error) {
       v := reflect.ValueOf(s)
       //如果传入指针则拿到指针指向的值
       for v.Kind() == reflect.Ptr {
          v = v.Elem()
       }
       //参数必须是结构体
       for v.Kind() != reflect.Struct {
          //防止panic,返回自定义错误
          return
       }
       //v必须是一个实例
       if !v.CanAddr() {
          //防止panic,返回自定义错误
          return
       }
       for _, filedName := range filedNames {
          fieldValue := v.FieldByName(filedName)
          if !fieldValue.CanAddr() {
             //防止panic,返回自定义错误
             return
          }
          res = append(res, fieldValue.Addr().Interface())
       }
    
       return
    }
    //获取结构体字段的变量名和tag名
    func GetTagAndFiledNameOfStruct(s interface{}, tag string) (tagsRes []string, filedNames []string, err error) {
       t := reflect.TypeOf(s)
       //如果传入指针则拿到指针指向的值
       if t.Kind() == reflect.Ptr {
          t = t.Elem()
       }
       //传入的必须是结构体
       if t.Kind() != reflect.Struct {
          return
       }
       //获取结构体字段数量
       n := t.NumField()
       for i := 0; i < n; i++ {
          field := t.Field(i)
          tagsRes = append(tagsRes, field.Tag.Get(tag))
          filedNames = append(filedNames, field.Name)
       }
       return
    }
    
    展开全文
  • 实例:老师辅导学生 #include <iostream> using namespace std; #include<string> /* 定义学生和老师两个结构体 */ struct Student { string name; int age; int score; }; struct Teacher { int...

    实例:老师辅导学生

    #include <iostream>
    using namespace std;
    #include<string>
    
    /*
    	定义学生和老师两个结构体
    */
    struct Student
    {
    	string name;
    	int age;
    	int score;
    };
    
    struct Teacher
    {
    	int id;
    	string name;
    	int age;
    	struct Student s1;
    };
    
    int main() 
    {
    
    	struct Teacher t1;//创建老师结构体变量
    	
    	t1.id = 1;
    	t1.name = "李老师";
    	t1.age = 48;
    	t1.s1.name = "小红";
    	t1.s1.age = 19;
    	t1.s1.score = 59;
    
    	cout <<"老师姓名:" <<t1.name<<"  "<< "老师辅导的学生姓名:"<<t1.s1.name << endl;
    
    	system("pause");
    	return 0;
    }
    
    
    展开全文
  • 在Linux 平台下 使用gsoap以 webservice 的方式实现通信, 此例为结构体实例,实现结构体的参数返回。
  • C++ 结构体实例和类实例的初始化

    千次阅读 2016-12-09 13:40:46
    结构体实例(包括共用体)和类实例的初始化方法完全相同,二者都可以应用于继承层次中。不同点是结构体(包括共用体)默认成员为public,而类默认成员是private型的。 一、若类和结构体所有数据成员均为public型...
  • 一、位段结构体介绍 位段结构体就是按位读写,c语言提供了专门的结构体方式 二、位段结构体定义 struct { type [member_name] : width ; }; struct { unsigned int widthValidated : 1; unsigned int ...
  • }之前我一直没有发现原来结构是不可以这样实例化的 换种方式,似乎结构体使用反射无法得到其构造函数ConstructorInfo对象 类中有一个隐式的构造函数,而结构没有构造函数 我甚至尝试查找非public构造函数 依然没有 ...
  • ROS消息-数组(固定长度可变长度)及结构体实例 说明 当利用ROS创建节点进行CAN通信时,单个can报文的消息格式通常为: candata.msg uint32 id uint8[8] data//这里采用固定长度数组 由于CAN通信同时需要收发多条...
  • C#中结构体实例字段

    2012-07-09 10:31:53
    结构体实例字段定义:  缺省初始化是调用编译器声明的缺省构造函数  在用户自定义的构造函数中必须显式初始化  不能在它们声明时初始化 struct Pair { public Pair(int x, int y) { this.x = x...
  • Go 创建结构体实例的四种方式

    千次阅读 2020-07-01 20:36:11
    创建结构体实例的四种方式 方式 1-直接声明 如: var person Person(见上一篇) 方式 2-{ } 案例演示: var person Person = Person{} type Person struct{ Name string Age int } func main() { p2 :=...
  • struct Node { //定义一个结构体struct+结构体的名字 string name; int age; int score; //以上均是结构体里的各种元素 }; //!!!注意,这里一定要加';'不然会报错 //结构体就是一种自己定义的数据类型 int ...
  • C++结构体实例和类实例的初始化 ********************************************************* *共用体实例的初始化方法与结构体实例的初始化方法完全相同, *但共用体不属于类继承层次结构。 *结构体、共用体都...
  • package main import ( "fmt" "reflect" ) //定义一个Cal结构体 type Cal struct { Num1 int Num2 int ...func (c Cal) GetSub(n1, n2 int) int { ... //通过反射创建一个变量结构体实例 newCal := reflect.New
  • golang:结构体实例

    2019-01-14 11:37:48
    实例化就是根据结构体定义的格式创建一份与格式一致的内存区域,结构体实例与实例间的内存是完全独立的。 Go语言可以通过多种方式实例化结构体,根据实际需要可以选用不同的写法。 基本的实例化形式 结构体本身是一...
  • C语言结构体实例-创建兔子

    千次阅读 2018-08-19 14:56:51
    参考裸编程思想。  #include &lt;stdio.h&gt; //#include "ycjobject.h" // 颜色定义 #define CL_BLACK 0 #define CL_WHITE 1 #define CL_GRAY 2 ...#define ID_CARROT 0x...
  • vector查找结构体实例find_if

    千次阅读 2015-11-24 19:20:40
    vector find_if 结构体
  • struct BinaryTree{int data;BinaryTree *leftpoiter;BinaryTree *rightpoiter;}; BinaryTree *p=(BinaryTree *)malloc(sizeof(BinaryTree));...效果一样,若用BinaryTree temp实例化的话,每次分...
  • /**  结构体实例化和成员访问  */    struct Rect {  var width: Double = 5.0  var height: Double = 6.0  }    va

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 106,215
精华内容 42,486
关键字:

结构体实例与结果