MST

星途 面试题库

面试题:C语言中结构体指针传递给函数的常见用途

在C语言中,简述将结构体指针传递给函数有哪些常见的用途,并编写一个简单示例,包含一个结构体,以及一个接收该结构体指针的函数,函数实现对结构体成员的修改。
18.2万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试

用途

  1. 提高效率:相比于传递整个结构体,传递结构体指针减少了数据拷贝,提高函数调用效率,特别是结构体较大时。
  2. 修改原数据:函数通过指针可直接修改调用者传入的结构体变量内容,实现数据的双向传递。
  3. 方便操作动态分配的结构体:在堆上动态分配结构体内存,通过指针传递到函数中进行操作,可有效管理内存。

示例代码

#include <stdio.h>

// 定义结构体
typedef struct {
    int num;
    char str[20];
} MyStruct;

// 定义接收结构体指针的函数
void modifyStruct(MyStruct *ptr) {
    ptr->num = 100;
    snprintf(ptr->str, sizeof(ptr->str), "Modified");
}

int main() {
    MyStruct myData = {10, "Original"};
    modifyStruct(&myData);
    printf("num: %d, str: %s\n", myData.num, myData.str);
    return 0;
}