我使用了三种不同的方式,我认为它们是等效的,将值分配给来自另一个函数的结构的成员。我在以下结构中得到了正确的结果,b
但c
不是a
. 这些改变结构成员值的方法不等效吗?
#include<stdio.h>
typedef struct
{
int a,b,c;
}
test_str;
void change(test_str * my_str_ad);
int main()
{
test_str my_str;
change(&my_str);
printf("a: %d, b:%d, c: %d\n", my_str.a, my_str.b, my_str.c);
return 0;
}
void change(test_str * my_str_ad)
{
test_str my_str;
my_str = *my_str_ad;
my_str.a = 5;
(*my_str_ad).b = 6;
my_str_ad->c = 7;
}