十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
c语言中标准函数指由标准头文件定义和实现的函数,即“系统自带的”,用户函数是由程序员自己定义实现的。
创新互联建站是一家专业提供泉山企业网站建设,专注与做网站、成都做网站、H5高端网站建设、小程序制作等业务。10年已为泉山众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。
无参函数就是函数没有定义参数,有参函数就是函数定义了参数。
在C语言中,函数的无参用关键字用void表示,如果一个函数的参数为void,当我们调用此函数并给它传递一个参数时,编译器会给出错误的警告,因为你把参数传递给了一个不接受参数的函数。 例: int func(void) { ... } int main(void) { func(5) ; /*It will cause an error .*/ ... return 0 ; } 这里注意一点,在C语言中(而不是C++中),如果函数的参数什么也没有,如int func(),那么此时你调用这个函数的时候放不放参数编译器都不会给出警告,编译器会认为它是可有可无的,但这不是一个好方法,如果函数不需要任何参数,那一定要显式的把void加到参数列表里。 参数是什么呢,比如f(x) = 5x + 3 ;这里的x就是参数(可理解为做为参照的数),是形参,f(5)会得出一个值,f(10)又会得出一个值(显然这是个双射函数,呵呵),那么这里的5 , 10都是实参(实际传递的参数),实参会替换形参的位置。 如: int func(int a , int b) { return a + b ; } 其中a , b是形参,调用时 func(5,6) ; 那5 , 6就是实参,函数得到实参后会替换原来形参的位置,相当于将5和6相加并返回结果。
如果是诸如函数声明int fun(int b[]),这个是传的地址,如果fun内部有赋值操作,那么会改变数组b的元素的值
如果是执行语句fun(b[i]);那么传的就是b[i]这个值,执行完fun后,b[i]的值不会变
a是一个指向指针的指针,a里面的内容是另一个指针p的地址,那么*a就是p的地址,**a就是*p。
同理,b的内容是另一个指针q的地址,*b就是q的地址,**b就是*q
t = *a, 那么t的内容就是p的地址,
*a = *b, a里面的内容变成了q的地址,即*a是q的地址,**a就是*q
*b = t, b里面的内容变成了p的地址,即*b是p的地址,**b就是*p
这三句,将**a的值和**b的值互换了,是对指针的操作。
传值方式:向函数传递参数时,先复制一份参数,然后才将复制品传给参数。函数中所有对参数的操作,就只是在使用复制品。不会改变传递前的参数本身。
传址方式:将地址传送给函数,函数对该地址的内容操作,相当于对实参本身的操作
void A(int a);
void A(int a, int b);
这些是有参函数,也就是传入参数,你可以在函数体内操作,对应地在主函数调用函数时会传入实参,如:A(a)。
viod A();
这是无参函数,对应在主函数调用函数时不会传入参数,如A()。
void
funtion1(void)
{
printf("funtion1是无参函数\n");
}
void
funtion2(int
x)
{
int
y;
y=x;
printf("funtion2是有参函数\n");
printf("参数的値是
%d",y);
}
mani()
{
funtion1();
funtion2(8);
}
这里所谓的有参和无参的参是指函数的参数,也就是上例中的funtion(int
x)括号中的参数x
,该参数的类型是int型。funtion2(int
x)被调用时的形式如funtion2(8),也就是x=8,然后把参数値8传进函数funtion2,y=8;所以,主函数main()的运行结果是,
funtion1是无参函数
funtion2是有参函数
参数的値是8
#include cstdlib
#include iostreamusing namespace std;
int calculate( int a, int b, int c )
{
return a*a*a+b*b*b+c*c*c;
}
int main(int argc, char *argv[])
{
int x, y, z, l;
cout " 计算等式的结果 " endl;
cout " ------------------------------------------------- " endl;
cout " 请输入x,y和z的值: ";
cin x y z;
l = calculate( x, y, z );
cout " 这3个数的立方和是 " l endl;
system("PAUSE");
return EXIT_SUCCESS;
}
做好了,请检查。。。