一,函数基本知识
为了使得主函数主干的清晰,在头文件后先将函数表示出来。(最后用分号结束,且注意主函数中不能实现具体功能) 3.函数调用
主函数中调用自定义函数,是将主函数中的值形式赋值给自定形参。(主函数中的值与自定义函数没有任何关系,不会因为自定义函数的运行而改变值)
指针变量 :(指针)内容为地址的变量,所指变量为有效的内容为目标变量。
Eg : 类 * (指针说明符) 变量名 int *I -point ;
传地址的主要应用:
ü 赋值
Int I ,* i-point ;
i-point=&I; // 一个指针变量只能指向同一类型的变量所代表的地址,赋值时形式要相同
ü 定义时的赋初值
Int *i-point = & I;
*I-point =3; // 在说明变量时前面加*表示指针变量,在正常变量中加* 表示指针内容的运算
ü 指针赋值运算
Int a,b;
Int *p,*q; //确定指针变量,但是并未对其赋值,所以指针没有意义;
P=&a; q=&b; //将指针指向a,b的空间;
*p=10; *q=100; //指针中的内容即a,b的内容被赋值;
8. 指针变化运算
注意:该运算最好应用数组或数组地址的同种类型的综合应用。
ü ++(--)
Int a[4] ;int *p=a ; p++; //a数组中的a 是取全部数组,但一般表示首位,p++ 的意思是在a[0]的基础上指针指向数组的下一位。
ü +n(-n);
指针向上或向上移动数组n位;
ü *(a+1)=2 ;
*++p=2;
两者区别 : 第一个是指针一直指向数组首位a[0],只是数组a[0]的内容发生改变, 但第二个是指针的指向随着p的增加而改变,数组本身的内容没有改变
例题实例:
传值调用 设计程序计算f (x) = x2 + 2x + 1
#include<bits/stdc++.h>
int main( )
{
int a = 10, b;
b = Fun(a);
printf ("f(10)的值为:%d\n", b);
return 0 ;
}
int Fun(int x)
{
int y ;
y = x * x + 2 * x + 1 ;
return y ;
}
求任意两个自然数的最大公约数
int CommonFactor(int m, int n);
int main( )
{
int x, y, factor;
cin>>x,y;
cout<<factor<<endl;
return 0;
}
int CommonFactor(int m, int n)
int r, temp;if (m < n)
{
temp = m; m = n; n = temp;
}
r = m % n;
while (r != 0)
{
m = n;
n = r;
r = m % n;
}
return n;
}
传引用的应用
求两个正整数的最大公约数
using namespace std;
int gc(int n,int m);
int swap(int &n,int &m);
int main()
{
int n,m,c=0;
cin>>n>>m;
if(n<m)
{swap(n,m);}
c=gc(n,m);
cout<<c;
return 0;
}
int swap(int &n,int &m)
{
int tmp;
tmp=n;n=m;m=tmp;
}
int gc(int n,int m)
{
if(m==0) return n;
else return gc(m,n%m);
}
{ int t;
t=*p1; *p1=*p2; *p2=t;
}
{ int *point1, *point2, a,b;
cin>>a>>b;
point1=&a; point2=&b;
if (a<b)
swap (point1, point2);
cout<<“a=“<<a<<“,b=”<<b<<endl;
cout<<*point1<<“,”<<*point2<<endl;
}