gpt4 book ai didi

c - 我不明白这 tu[en-11] 行代码。访问结构成员到底是如何工作的?

转载 作者:行者123 更新时间:2023-11-30 21:01:39 25 4
gpt4 key购买 nike

#include<stdio.h>
#include<conio.h>
struct student
{
int enroll;
char name[50];
}stu[2] = {
{11, "Rj"},
{12, "Ay"}
};
int main()
{
int en;
printf("Enter Enroll: ");
scanf("%d", &en);
if(en==11 || en==12)
{
printf("%s", stu[en-11].name);
printf("\t%d", stu[en-11].enroll);
}
else
printf("Wrong");
return 0;
}

stu[2]是一个结构数组,所以通常我应该使用 for 循环来访问结构的每个成员,或者像这样 stu[0].name , stu[1].name ,但在下面的代码中我还可以使用 stu[en-11] 访问成员。请帮忙。这是如何工作的?

最佳答案

在您的情况下,stu 的正确索引是 0 和 1。

因此,en 值必须为 11 或 12 才能获得有效访问权限。您将需要 OR 运算符 || 而不是 AND 运算符 &&

改变

  if(en==11 && en==12)

 if(en==11 || en==12)
<小时/>

来到 stu[en-11] 部分,正如您所要求的,索引值必须是 int,并且表达式 en -11 产生一个 int。仅此而已。

关于c - 我不明白这 tu[en-11] 行代码。访问结构成员到底是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35036766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com