Mr.Lucy

导航

2011 12-14 记录

 


1.函数的概念

   

View Code
#include<stdio.h>
void add(int a,int b);
void main(){

add(10,20);

}
void add(int a,int b){

printf("%d+%d=%d",a,b,a+b);

}

上述是无返回值类型的函数

#include<stdio.h>
int add(int a,int b);
void main(){

int K=add(10,20);

}
int add(int a,int b){

int c=a+b;
return c;
}

 


上述是有返回值类型的函数

函数有声明和定义:

                         声明是告诉编译器有这样个函数。

                         定义是告诉编译器去执行这样个函数,去执行。

关于函数参数的传递有两种方式:1.称之为值传递。例如上述例子。因为函数在内存中也是占内存空间的,其地址是系统自动分配,调用完后,就释放掉了。

这属于动态的分配。其形参是局部变量,局部变量自声明处到函数结束,生命期就终止了。

2.称之为址传递,传递的是指针,也就是地址。例如

 

#include<stdio.h>
void Func(int *Pointer);
void main(){
int a = 3;
Func(&a);

}
void Func(int *Pointer){
*Pointer += 1;
}

 

 

指定函数形参默认值的注意:1.如果已经在函数声明处给出了形参默认值,就不必再在定义处再次进行一个指定。

                                       2.函数形参默认值的指定必须从右到左。

                                       3.函数形参对应的默认值必须从左到右,依次匹配。

 

#include<stdio.h>

void add(int a = 10,int b = 20,int c=10);
void main(){

add();
}

void add(int a =10,int b =20,int c=10){

printf("%d\t%d\t%d",a,b,c)

}

     这是错误的。

#include<stdio.h>
void add(int a,int b=11,int c=12);
void main(){
add(10,11,12);

}
void add(int a,int b,int c){

printf("%d\t%d\t%d",a,b,c);

}


这样从左到右是的匹配

 

 

 

 

 

    

posted on 2011-12-15 00:20  Mr.Lucy  阅读(169)  评论(0编辑  收藏  举报