您的位置:首页 > 编程语言 > C语言/C++

c语言 调用函数过程

2016-11-19 22:06 197 查看
一、调用函数过程

1、通过函数名找到入口,函数名是指针常量,保存函数地址。

2、给形参分配空间。

3、传值:把实参变量对应内存空间的值传递给形参变量对应空间。

当只读(只使用不修改)实参变量时,传实参变量名;

当写(既使用也修改)实参变量对应内存空间的值时,传实参变量对应空间的地址。

fun1(char*num)

num++;

char*ptr = “hello world”;

fun1(ptr);

输出:hello world,

表示修改不了,传的是实参变量名,只可使用不可修改

#include <stdio.h>

void get_mem(char *ptr)

{

ptr = (char*)malloc(sizeof(char) * 100);

}

int main()

{

char*ptr;

get_mem(ptr);

strcpy(ptr,"hello world");

printf("ptr = %s\n",ptr);

return 0;

}

运行结果:段错误,因为利用函数分配空间没有成功。

在这个程序里,函数实参为变量名,是只读,无法修改,所以空间分配失败,段错误。

要修改的话

#include <stdio.h>

void get_mem(char **ptr)

{

*ptr = (char*)malloc(sizeof(char) * 100);

}

int main()

{

char*ptr;

get_mem(&ptr);

strcpy(ptr,"hello world");

printf("ptr = %s\n",ptr);

return 0;

}

运行结果:ptr = hello world

void fun2(char **ptr)

{

(*ptr)++;

}

char *ptr = “hello world”;

fun 2(&ptr);

输出:ello world

表示可以修改,传的是实参变量对应空间的地址

4、执行函数体语句。

5、返回并释放内存空间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: