c - 将结构传递给函数 C

标签 c

首先,我是 C 编程的新手,我想知道如何通过函数传递 struct

例如:

typedef struct
{
 char name[20];
}info;

void message()
{
 info n;

 printf("Enter your name : ");
 scanf("%s", &n.name);
}

我想将输入的名称传递给此函数,以便它打印出名称。

void name()
{
printf("Good morning %s", ...);
}

最佳答案

是的,您可以简单地按值传递结构。这将创建数据的副本:

void name(info inf)
{
   printf("Good morning %s", inf.name);
}

创建一个其唯一成员是数组的结构(就像您所做的那样)是一种已知的“按值传递数组”的方法(这通常是不可能的)。

对于大型结构,通常只传递一个指针:

void name(info *inf)
{
   printf("Good morning %s", inf->name);
}

但是对指针目标的更改将对调用者可见。

关于c - 将结构传递给函数 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40589852/

相关文章:

c - 使用c问题的简单计算器

c - fprintf 没有打印到文件

c - 十六进制字符到整数的转换

c - 不允许指向不完整类类型的指针 - 单链表

c - 如何读取txt文件的部分内容

检查并创建目录

c - 为什么这段代码会导致死循环

c - 如何正确调试 Windows 内核驱动程序?

c++ - read was not declared 错误信息

c - 线程堆栈分配