结构内的数组
结构是C / C++中的一种数据类型,它允许将一组相关变量视为一个单元而不是单独的实体。结构可以包含不同数据类型的元素-int,char,float,double等。它也可以包含数组作为其成员。这样的数组称为结构内的数组。结构内的数组是该结构的成员,可以像访问结构的其他元素一样对其进行访问。
以下是在结构中使用数组概念的程序的演示。该程序显示学生的记录,其中包括在各个学科中获得的卷数,成绩和分数。各种主题中的标记已存储在称为标记的数组下。整个记录存储在称为 候选人。
C
// C program to demonstrate the
// use of an array within a structure
#include
// Declaration of the structure candidate
struct candidate {
int roll_no;
char grade;
// Array within the structure
float marks[4];
};
// Function to displays the content of
// the structure variables
void display(struct candidate a1)
{
printf("Roll number : %d\n", a1.roll_no);
printf("Grade : %c\n", a1.grade);
printf("Marks secured:\n");
int i;
int len = sizeof(a1.marks) / sizeof(float);
// Accessing the contents of the
// array within the structure
for (i = 0; i < len; i++) {
printf("Subject %d : %.2f\n",
i + 1, a1.marks[i]);
}
}
// Driver Code
int main()
{
// Initialize a structure
struct candidate A
= { 1, 'A', { 98.5, 77, 89, 78.5 } };
// Function to display structure
display(A);
return 0;
}
C
// C program to demonstrate the
// usage of an array of structures
#include
// Declaring a structure class
struct class {
int roll_no;
char grade;
float marks;
};
// Function to displays the contents
// of the array of structures
void display(struct class class_record[3])
{
int i, len = 3;
// Display the contents of the array
// of structures here, each element
// of the array is a structure of class
for (i = 0; i < len; i++) {
printf("Roll number : %d\n",
class_record[i].roll_no);
printf("Grade : %c\n",
class_record[i].grade);
printf("Average marks : %.2f\n",
class_record[i].marks);
printf("\n");
}
}
// Driver Code
int main()
{
// Initialize of an array of structures
struct class class_record[3]
= { { 1, 'A', 89.5f },
{ 2, 'C', 67.5f },
{ 3, 'B', 70.5f } };
// Function Call to display
// the class_record
display(class_record);
return 0;
}
输出:
Roll number : 1
Grade : A
Marks secured:
Subject 1 : 98.50
Subject 2 : 77.00
Subject 3 : 89.00
Subject 4 : 78.50
结构数组
数组是相同类型的数据项的集合。数组的每个元素都可以是int,char,float,double甚至是一个结构。我们已经看到一种结构允许将不同数据类型的元素以单个名称组合在一起。然后可以将此结构本身视为一种新的数据类型。因此,数组可以包含此新数据类型的元素。一组结构可在将记录分组在一起时找到其应用,并提供快速访问。
以下是一系列结构的演示。该数组包含班级中学生的详细信息。详细信息包括卷号,等级和标记,它们已分组在一个结构(记录)下。每个学生都有一个记录。这样,可以在单个实体下组装一组相关变量,以提高代码的清晰度并提高其效率。
C
// C program to demonstrate the
// usage of an array of structures
#include
// Declaring a structure class
struct class {
int roll_no;
char grade;
float marks;
};
// Function to displays the contents
// of the array of structures
void display(struct class class_record[3])
{
int i, len = 3;
// Display the contents of the array
// of structures here, each element
// of the array is a structure of class
for (i = 0; i < len; i++) {
printf("Roll number : %d\n",
class_record[i].roll_no);
printf("Grade : %c\n",
class_record[i].grade);
printf("Average marks : %.2f\n",
class_record[i].marks);
printf("\n");
}
}
// Driver Code
int main()
{
// Initialize of an array of structures
struct class class_record[3]
= { { 1, 'A', 89.5f },
{ 2, 'C', 67.5f },
{ 3, 'B', 70.5f } };
// Function Call to display
// the class_record
display(class_record);
return 0;
}
输出:
Roll number : 1
Grade : A
Average marks : 89.50
Roll number : 2
Grade : C
Average marks : 67.50
Roll number : 3
Grade : B
Average marks : 70.50
以下是结构中的数组和结构的数组之间的表格差异:
Array within a Structure | Array of Structures | |
---|---|---|
Basic idea | A structure contains an array as its member variable | An array in which each element is of type structure |
Access | Can be accessed using the dot operator just as we access other elements of the structure | Can be accessed by indexing just as we access an array |
Syntax |
struct class { int ar[10]; } a1, a2, a3; |
struct class { int a, b, c; } students[10]; |
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。