标签:内存地址 函数 表达式 单元 实例 参数 hello 头文件 过程
函数:{
char arr[] = {"hello world"};
memset(arr, ‘‘ ,5); //把arr里面的前五个元素改为,不包括\n
printf("%s\n" ,arr);
return 0;
}
2:自定义函数
(类型)void-空:表示没有返回值
//自定义函数,用来交换两个变量
#include<stdio.h>
void Swap1(int x, int y) //Swap1行不通,形参的改变,不能使实参改变,传值调用
{
int tmp = 0;
tmp = x;
x = y;
y = tmp;
}
void Swap2(int pa ,int pb)//Swap2行得通,传址调用:这种方式可以让函数和函数外面的变量建立真正的联系,也就是函数内部可以直接操作函数外部的变量。
{
int tmp = 0;
tmp = pa;
pa = pb;
pb = tmp;
}
int main()
{
int a = 10;
int b = 20;
int pa = &a;
int pb = &b;
Swap1(a, b);
Swap2(&a, &b); //交换两个变量
printf("a = %d b = %d" ,a ,b);
return 0;
}
}
函数的参数:
1实际参数(实参):真是传给函数的参数,实参可以是:常量,变量,表达式,函数等。无论实参是何种类型的量,在进行函数调用时,他们都必须有确定的值,以便把这些值传送给形参。
2形式参数(形参):形式参数是指函数名后括号中的变量,因为形式参数只有在函数被调用的过程中才实例化(分配内存单元),所以叫形式参数。形式参数当函数调用完成之后就自动销毁了。因此形式参数只在函数中有效。
注意:当实参传给形参时,形参其实是实参的一份临时拷贝,对形参的修改,是不会改变实参的。
函数的调用:
1:传值调用:函数的形参和实参分别占有不同内存块,对形参的修改不会影响实参。
2:传址调用:传址调用是把函数外部创建变量的内存地址传递给函数参数的以中调用函数的方式。
这种传参方式可以让函数和函数外边的变量建立真正的来联系,也就是函数内部可以直接操作函数外部的变量。
///引用自己写的头文件用""
//#include<stdio.h>
//#include"add.h"
//int main()
//{
// int sum = 0;
// int a = 10;
// int b = 20;
// sum = add(a, b);
// printf("%d" ,sum );
// return 0;
//}
标签:内存地址 函数 表达式 单元 实例 参数 hello 头文件 过程
原文地址:https://blog.51cto.com/14943133/2539611