c - 我如何访问 typedef 结构中的变量
问题描述
好吧,我最近才开始学习编码,我几乎不明白。在程序的 main() 部分之前,我有这个。
typedef struct verado
{
int id;
char nev[30];
char verCs[4];
char email[30];
int adas;
};
这存储了每个变量的 10 个。此外,我还有几个功能,其中一些在彼此内部,我无法从上述部分访问变量。
void email(verado *v,int *h)
{
char vercs[4];
int opc;
printf("1:A+ 2:B+ 3:AB+ 4:0+ 5:A- 6:B- 7:AB- 8:0-\n") ;
scanf(" %d", &opc);
switch(opc)
{
case 1:
vercs[0]='A';vercs[1]='+';vercs[2]='\0';
printf("%s %s", vercs,(*v)[1].verCs,*h );
break;
default:
printf("\nerror\n");
break;
}
return 0;
}
进一步,它需要能够将选定的血型与存储的 ppl 的血型进行比较,但如果我无法找到如何访问它们,我就无法做到这一点。
解决方案
通常,要访问结构的所谓“成员变量”,您必须使用点符号,例如在这个不同问题的答案中使用的点符号。
但是,在您的情况下,您的函数可以访问指针作为参数。所以你实际上没有一个实例struct verado
,你有一个指向它的指针。
这意味着您应该使用箭头运算符。例如v->id
访问变量id
。
箭头的作用与此相同:(*v).id
. 它取消引用变量,然后访问成员变量。
正如有人在评论中解释的那样,您还想给您struct verado
的类型名称。这样您就不必struct verado
每次都输入。因此,展示我刚才所说的内容的小示例可能如下所示:
#include<stdio.h>
typedef struct verado {
int id;
} typeOfVerado;
void email(struct verado *v){
printf("verado id: %d\n", v->id);
}
void main(){
typeOfVerado myVerado = { id: 3};
email(&myVerado);
}
我不是最精通 C 语言的人,但我希望这足以让您对初学者有所了解。
推荐阅读
- kubernetes - 如何列出一个不存在的命名空间的所有对象?
- python - 如何将单元格数据转换为 .vtu 文件中的点数据
- admob - 我需要在 AdMob 中更改软件包名称
- python-3.x - 如何在 jupyter notebook 中仅导出 pdf 格式的输出?
- python - 我想从同一个文件python的不同工作表中获取一些数据
- javascript - 没有服务器的网络工作者
- .net - 控制器中的JQuery ajax发布参数为空
- c# - 过滤自动完成列表中的数据
- javascript - 如何从组件初始化Angular服务,自定义类?
- python - 如何对里面有列表的字典进行排序?