最好能详细讲下形参和实参,谢谢
第1个回答 2011-07-12
c语言中的形参、实参跟函数大小、程序大小没有必然的联系。
小的程序也可以有形参、实参。大程序可能也用不到。
这个程序
#include <stdio.h>
int a,b;
void fun()
{a=100;b=200;
}
main()
{int a=5,b=7;
fun();
printf("%d%d",a,b);
}
为什么形参没有影响实参??????运行结果还是57
fun函数没有返回值,干吗要加return语句?
你这个问题实际不是形参、实参的问题而是变量的作用域的问题。
main函数中的a、b的作用域比fun的大。所以printf函数中实际调用的是main中的a、b值。
小的程序也可以有形参、实参。大程序可能也用不到。
这个程序
#include <stdio.h>
int a,b;
void fun()
{a=100;b=200;
}
main()
{int a=5,b=7;
fun();
printf("%d%d",a,b);
}
为什么形参没有影响实参??????运行结果还是57
fun函数没有返回值,干吗要加return语句?
你这个问题实际不是形参、实参的问题而是变量的作用域的问题。
main函数中的a、b的作用域比fun的大。所以printf函数中实际调用的是main中的a、b值。
第2个回答 2011-07-12
函数声明或定义时的参数称为形参;调用函数时,向函数传递的具体参数为实参。
你这个程序中fun函数修改的是全局变量a、b的值,在主函数中进行输出时,主函数中的局部变量a、b屏蔽了全局变量a、b。此时要想输出全局变量的值,需要改写输出语句:printf("%d%d",::a,::b);本回答被提问者采纳
你这个程序中fun函数修改的是全局变量a、b的值,在主函数中进行输出时,主函数中的局部变量a、b屏蔽了全局变量a、b。此时要想输出全局变量的值,需要改写输出语句:printf("%d%d",::a,::b);本回答被提问者采纳
第3个回答 2011-07-12
有除了main函数以外的函数并且需要有数据输入时就有形参和实参追问
这个程序
#include
int a,b;
void fun()
{a=100;b=200;
}
main()
{int a=5,b=7;
fun();
printf("%d%d",a,b);
}
为什么形参没有影响实参??????运行结果还是57
fun函数末应有return语句
有不明白的+我q:345367821
一起讨论努力吧