c 函数

来源:互联网 发布:golang ide 编辑:程序博客网 时间:2024/05/17 08:12

函数三要素:函数名,形参,返回值类型

先看函数名:命名时我们应该注意命名一目了然(名称能够体现函数的功能)通常使用动词_名词(函数名具有自注释性)
函数名:是指针常量,保存函数存放的地址(即入口地址)
我们开始学习函数(或指针)时,总是出现这样一个程序
void swap(int a, int b)
{
int tmp;
tmp = a;
ab= b;
b = tmp;
}

int main()
{
int a = 5;
int b = 6;
swap(a,b);
printf(“a = %d,b = %d”,a,b);
}
那你们知道为什么这样不好交换两个数的值,而改为指着好呢就可以改变a, b的值吗?我们来看一个图来理解:
这里写图片描述
1.通过函数名找到函数的入口地址
2.给形参分配空间
3.传值:把实参变量对应空间的值传给形参
4.执行函数体里的语句
5.函数返回并释放内存空间

总结:读(不修改)实参变量对应空间的值,传实参变量名
写(修改)实参变量对应的空间的值,传实参地址
记住:return不能返回局部变量地址

函数指针

首先是个指针*p,然后它指向函数int ( *p)(int , int )
p = add;
函数指针的形参:函数指针指向的函数叫回调函数

补充:常见的内存错误原因:
1.内存分配未成功,却是用了它
2.内存分配虽然成功,但是未初始化就引用它
3.内存分配成功,并且已经初始化,但操作越过内存的边界
4.忘记了释放内存,造成内存泄漏
5.释放了内存却继续使用它

0 0
原创粉丝点击