面试题答案
一键面试用途
- 提高效率:相比于传递整个结构体,传递结构体指针减少了数据拷贝,提高函数调用效率,特别是结构体较大时。
- 修改原数据:函数通过指针可直接修改调用者传入的结构体变量内容,实现数据的双向传递。
- 方便操作动态分配的结构体:在堆上动态分配结构体内存,通过指针传递到函数中进行操作,可有效管理内存。
示例代码
#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;
}