|
20鱼币
#include <stdio.h>
typedef struct {int b, p;}A;
void f(A c)//注意: C是结构变量名
{
int j;
c.b += 1; c.p += 2;
}
main()
{
int i;
A a ={1,2};
f(a);
printf("%d, %d\n", a.b, a.p);
}
你不理解的或许是形参实参,局部变量的问题
帮你对程序进行了注释,希望能帮到你
- #include <stdio.h>
- typedef struct {int b, p;}A;//声明了一个结构体类型A,A类型有两个int类型变量,分别是b和p
- void f(A c)//注意: C是结构变量名
- {//c为形参,是一个局部变量,函数调用结束,c会被立即销毁
- int j;
- c.b += 1; c.p += 2;//c.b自加1,c.p自加2
- }
- int main()
- {
- int i;
- A a ={1,2};//定义了结构体变量a,a.b=1,a.p=2
- f(a);//调用函数f,a作为实参传进函数。然而函数的运行没有对a产生任何影响
- printf("%d, %d\n", a.b, a.p);//输出a.b和a.p
- }
复制代码
|
最佳答案
查看完整内容
你不理解的或许是形参实参,局部变量的问题
帮你对程序进行了注释,希望能帮到你
|