一:函数定义的语法形式
数据类型 函数名(形式参数表)
{
函数体 //执行语句
}
(如果数据类型为void,则无返回值)
二:
int main(int x,int y)
{
return x>y?x:y;
}
该函数返回值是整形,有两个整形的形参,用来接受实参传递的两个数据,函数体内的语句是求两个数中的较大者并将其返回主调函数。
三:
函数的传值调用
#include<iostream>
using namespace std;
void swap(int a,int b)
{
inttmp=a;a=b;b=tmp;
}
int main()
{
intc=1,d=2;
swap(c,d);
cout<<c<<’‘<<d<<endl;
return0;
}
其中swap函数中交换了a,b两数的值,但是在main中却没有交换。因为swap函数只交换了c,d两变量副本的值,实参没有改变,并没有达到交换的目的。
四:
当
类型名&引用名=某变量名(才可真实改变实参)
正常语句中→&的意思是求地址运算。
指针变量可以赋初值:
int i,*i_point;
i_point=&i;
也可以在定义指针变量时赋初值:
int i;
int *i_point=&i;
一个指针变量只能指向同一类型的变量。即整形指针变量只能指向整形数据的地址,而不能放其他类型数据的地址。
++(--):指向下一个(或上一个)同种类型的数据
-int a[4];int *p=a;p++;
-int b=2;int *q=&b;p--;
+n(-n)
-int a[4];int *p=a;p+=2;
-int b=2;int *q=&b;p-=2
五:
函数的参数可以是指针类型,它的作用是将一个变量的地址传递到另一个函数中。
函数调用不能改变实参指针变量的值,但可以改变实参指针变量所指向变量的值。
六:递归函数
欧几里得算法:
gcd(m,n)=gcd(n,m%n)
递归代码:
GCD(m,n)//约定m>n//
{
if(n=0)return(m);
else
return(GCD(n,m mod n));
}
七:通过对函数的学习,让我知道程序不止只有一个主函数,还有很多为主函数服务的其他函数,共同作用,是代码简洁明了,易读,通过递归函数可以更节省程序的繁琐性,使代码变得更加实用。要学会用函数来表达自己的思想,用指针也是调用函数的一种方式。