亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C结构

C 结构

在本教程中,您将通过示例了解 C 编程中的结构类型。

在 C 编程中,结构(或结构)是一个名称下的变量(可以是不同类型)的集合。


定义结构

在创建结构变量之前,您需要定义其数据类型。要定义一个结构,struct 使用了关键字。

结构的语法

struct structureName {
  dataType member1;
  dataType member2;
  ...
};

例如,

struct Person {
  char name[50];
  int citNo;
  float salary;
};

这里,一个派生类型 struct Person 被定义为。现在,您可以创建这种类型的变量了。


创建结构变量

struct 声明类型,不分配存储或内存。要分配给定结构类型的内存并使用它,我们需要创建变量。

下面是我们如何创建结构变量:

struct Person {
  // code
};

int main() {
  struct Person person1, person2, p[20];
  return 0;
}

另一种创建 struct 的方法 变量是:

struct Person {
   // code
} person1, person2, p[20];

在这两种情况下,


访问结构的成员

有两种类型的运算符用于访问结构的成员。

  1. . - 会员运营商
  2. -> - 结构指针运算符(将在下一个教程中讨论)

假设,您想要访问 salary person2 .这是你可以做到的。

person2.salary

示例 1:C++ 结构

#include <stdio.h>
#include <string.h>

// create struct with person1 variable
struct Person {
  char name[50];
  int citNo;
  float salary;
} person1;

int main() {

  // assign value to name of person1
  strcpy(person1.name, "George Orwell");

  // assign values to other person1 variables
  person1.citNo = 1984;
  person1. salary = 2500;

  // print struct variables
  printf("Name: %s\n", person1.name);
  printf("Citizenship No.: %d\n", person1.citNo);
  printf("Salary: %.2f", person1.salary);

  return 0;
}

输出

Name: George Orwell
Citizenship No.: 1984
Salary: 2500.00

在这个程序中,我们创建了一个 struct 命名为 Person .我们还创建了一个Person的变量 命名为 person1 .

main() ,我们已经为 Person 中定义的变量赋值 对于 person1 对象。

strcpy(person1.name, "George Orwell");
person1.citNo = 1984;
person1. salary = 2500;

请注意,我们使用了 strcpy() 将值分配给 person1.name 的函数 .

这是因为 namechar 数组(C 字符串),我们不能使用赋值运算符 = 在我们声明字符串之后使用它。

最后,我们打印出person1的数据 .


关键字类型定义

我们使用 typedef 关键字为数据类型创建别名。它通常与结构一起使用,以简化声明变量的语法。

比如我们看下面的代码:

struct Distance{
  int feet;
  float inch;
};

int main() {
  struct Distance d1, d2;
}

我们可以使用 typedef 用简化的语法编写等效代码:

typedef struct Distance {
  int feet;
  float inch;
} distances;

int main() {
  distances d1, d2;
}

示例 2:C++ 类型定义

#include <stdio.h>
#include <string.h>

// struct with typedef person
typedef struct Person {
  char name[50];
  int citNo;
  float salary;
} person;

int main() {

  // create  Person variable
  person p1;

  // assign value to name of p1
  strcpy(p1.name, "George Orwell");

  // assign values to other p1 variables
  p1.citNo = 1984;
  p1. salary = 2500;

  // print struct variables
  printf("Name: %s\n", p1.name);
  printf("Citizenship No.: %d\n", p1.citNo);
  printf("Salary: %.2f", p1.salary);

  return 0;
}

输出

Name: George Orwell
Citizenship No.: 1984
Salary: 2500.00

在这里,我们使用了 typedef 使用 Person 创建别名 person 的结构 .

// struct with typedef person
typedef struct Person {
  // code
} person;

现在,我们可以简单地声明一个 Person 使用 person 的变量 别名:

// equivalent to struct Person p1
person p1;

嵌套结构

您可以在 C 编程中的结构内创建结构。例如,

struct complex {
  int imag;
  float real;
};

struct number {
  struct complex comp;
  int integers;
} num1, num2;

假设,你想设置 imag num2 个 可变为 11 .你可以这样做:

num2.comp.imag = 11;

示例 3:C++ 嵌套结构

#include <stdio.h>

struct complex {
  int imag;
  float real;
};

struct number {
  struct complex comp;
  int integer;
} num1;

int main() {

  // initialize complex variables
  num1.comp.imag = 11;
  num1.comp.real = 5.25;

  // initialize number variable
  num1.integer = 6;
	
  // print struct variables
  printf("Imaginary Part: %d\n", num1.comp.imag);
  printf("Real Part: %.2f\n", num1.comp.real);
  printf("Integer: %d", num1.integer);

  return 0;
}

输出

Imaginary Part: 11
Real Part: 5.25
Integer: 6

为什么在 C 中使用结构?

假设您想存储一个人的信息:他/她的姓名、公民号码和薪水。您可以创建不同的变量 name , citNo薪水 来存储这些信息。

如果您需要存储多个人的信息怎么办?现在,您需要为每个人的每个信息创建不同的变量:name1 , citNo1 , 薪水1 , name2 , citNo2 , salary2 等。

更好的方法是在一个名称 Person 下收集所有相关信息 构建并为每个人使用它。


更多关于结构


C语言

  1. C# Hello World - 你的第一个 C# 程序
  2. C# 关键字和标识符
  3. C# 变量和(原始)数据类型
  4. C# 运算符
  5. C# 位和位移运算符
  6. C# 基本输入和输出
  7. C# 表达式、语句和块(附示例)
  8. C# 注释
  9. C# switch 语句
  10. C# 三元 (? :) 运算符
  11. C# 中断语句
  12. C# continue 语句