笔记3

2020-07-11  本文已影响0人  dc_3

1函数调用的传值方式:1)按值传递2)地址传递 3)引用传递=指针传递的简化
2函数重载
c语言中函数的名称是可以----------------------------------------重复的,根据输入参数的个数/类型/顺序不同,来明确调用一个具体函数。
合法重载判断标准,输入参数的个数/类型/顺序不同,和返回值无关。
1)个数区分
void hello()
void hello(int a)合法
void hello(int a,int b)合法
void hello(float a,int b)合法,类型变了
void hello(int b,int a)====>不合法重载
int hello(int b,float a) 合法,顺序变了
float hello(int b,float a) ===》不合法
重载特殊现象:1按引用传递 2按默认值传递
main调用其他函数,执行的操作为
1)main断电保护2)开辟函数形参空间 3)将实参数据拷贝到形参4)程序进入子函数 5)断点恢复,拿回返回值。
int a =&b a是指向int型的指针,它也存储到内存中,值为b的地址。而a表示取出a中存储的地址的值,就是b。而&a则表示指针本身的地址,和b就没关系了。(7.2上午第3段)
引用:给原始变量起别称,不重新开辟内存,简化指针传递的操作。
3函数的默认值
void add(int a, int b=20); add(4);
void add(int a, int b=20,int c); 不合法,默认写在最右边
4递归函数标准写法:
1)定义一个返回值c
2)if 递归终止条件
c=终止值
else
c=递归公式
return c
age(int n)
{
int c;
if n==1 c=10;
else
c=age(n-1)+2
return c
}
数组与指针:
数组的初始化方法:开辟在战区,堆区
int a[10];
int p=new int[10]; delete [] p
输入初始值:
int a[10]={0,1,2,3,4,5,6,7,8,9}
int a[10]={0,1,2,3}
int a[2][]={1,2,3,4,5}不合法,必须指定列数。
int a[10]数组名为此数组的头指针,a是常量,也是数组中第一个元素的位置,a=&a[0]
a++是错误的,常量无法自加。
[]运算符 a[3]===>
(a+sizeof(int)3)===>(a+3)
int *p=a; int *p=&a[0]
p++
p++:右结合:(p++)先把p的内容取出,然后指针p加1
*p p=p+1

++p:(++p):先p=p+1,然后取*p
a和&a区别~

上一篇下一篇

猜你喜欢

热点阅读