【发布时间】:2016-08-10 11:19:19
【问题描述】:
下面的程序有两个结构。我不明白如何在使用指针时将值从一个结构变量传递到另一个结构变量
#include <stdio.h>
typedef struct {
int c;
char d;
}bob;
typedef struct {
int c;
char d;
}anna;
//expecting 'bob' type variable
void fun(bob *var2)
{
printf("var2->c=%d\n",var2->c);
printf("var2->d=%c\n",var2->d);
}
int main()
{
anna var1;
var1.c=2;
var1.d='c';
fun(&var1);//passing 'anna' type pointer
return 0;
}
...但是如果我将程序更改为使用普通变量传递值,则会出现编译错误。
#include <stdio.h>
typedef struct {
int c;
char d;
}bob;
typedef struct {
int c;
char d;
}anna;
//expecting a variable of type 'bob'
void fun(bob var2)
{
printf("var2.c=%d\n",var2.c);
printf("var2.d=%c\n",var2.d);
}
int main()
{
anna var1;
var1.c=2;
var1.d='c';
fun(var1);//passing a variable of type 'anna'
return 0;
}
这背后的逻辑是什么?
【问题讨论】: