C 将结构体指针传入 并对结构体内的元素指针赋值
时间: 2024-10-25 20:13:44 浏览: 27
C语言基础学习笔记(新手学习C工具)
在C语言中,你可以将结构体的指针作为函数参数传递,并通过这个指针访问和修改结构体内元素的地址。下面是一个简单的例子:
```c
// 定义一个结构体
typedef struct {
int *value;
} MyStruct;
// 功能:接收结构体指针并为其成员指针赋值
void assignValue(MyStruct *ptr) {
// 假设我们有一个int数组
int array[] = {1, 2, 3, 4, 5};
// 将数组首地址赋给结构体的value指针
ptr->value = array; // 这里假设*ptr代表整个struct MyStruct
}
// 主函数中创建结构体实例并调用上面的函数
int main() {
MyStruct myStruct;
// 初始化结构体指针
myStruct.value = NULL;
// 调用assignValue函数
assignValue(&myStruct);
// 现在myStruct.value指向了数组的第一个元素
printf("myStruct.value points to: %p\n", myStruct.value);
// 通过指针访问数组元素
printf("First element is: %d\n", *(myStruct.value)); // 输出第一个元素的值
return 0;
}
```
在这个示例中,`assignValue`函数接收了一个`MyStruct`类型的指针,然后将其`value`成员设置为另一个整数数组的地址。注意,当你通过`*(myStruct.value)`访问数组元素时,实际上是间接地操作数组的内容。
阅读全文