大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
你这是
我们提供的服务有:网站设计制作、成都网站设计、微信公众号开发、网站优化、网站认证、东山ssl等。为近千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的东山网站制作公司
参数传递
进去的其实是数组的地址,在函数内部修改了以后,数组的内容就已经真正的修改了,所以函数返回以后,继续访问这个数组,得到的数据就是修改以后的。
比如:
int array[12][12];
copy_arcs(arrar)
在访问array就是修改后的数据了
函数定义时在函数名后的圆括号的参数叫“形式参数”,简称“形参”;调用该函数时在函数名后的圆括号内的参数叫“实际参数”,简称“实参”。
int Add( int num1 , int num2) /* num1和num2为形参 */
{
return num1 + num2;
}
void main()
{
int a, b, value
a = 1;
b = 3;
value = Add (a, b); /* a和b为实参 */
printf("%d + %d = %d\n", a, b, value);
}
在C语言中,所谓的“输入参数”就是指形参;当形参使用引用传递时,输入参数也可以当作输出参数。
GetNumber()没有形参,也就没有输入参数。至于该函数体内部的变量c及输入语句,只能算是该函数的局部变量及赋值语句而已。简单来说,函数有没有输入参数,只要看函数名的圆括号内是否有参数即可。
以下以 C 语言为例,其余语言与之有类似之处:
A function is uniquely represented by a name and a set of operand types.
Its operands, referred to as parameters, are specified in a
comma-separated list enclosed in parentheses. The actions that the
function performs are specified in a block, referred to as the function
body. Every function has an associated return type.
函数由函数名以及一组操作数类型唯一地表示。函数的操作数,也即形参,在一对圆括号中声明,形参与形参之间以逗号分隔。函数执行的运算在一个称为函数体的块语句中定义。每一个函数都有一个相关联的返回类型。
As an example, we could write the following function to find the greatest common divisor of two ints:
考虑下面的例子,这个函数用来求出两个 int 型数的最大公约数:
// return the greatest common divisor
int gcd(int v1, int v2)
{
while (v2) {
int temp = v2;
v2 = v1 % v2;
v1 = temp;
}
return v1;
}
Here
we define a function named gcd that returns an int and has two int
parameters. To call gcd, we must supply two int values and we get an int
in return.
这里,定义了一个名为 gcd 的函数,该函数返回一个 int 型值,并带有两个 int 型形参。调用 gcd 函数时,必须提供两个 int 型值传递给函数,然后将得到一个 int 型的返回值。
————C++ Primer 4th Edition
可以将形参理解为入口参数,返回值理解为出口参数
话说,现在应该基本上不使用“入口参数”/“出口参数”这样的说法了吧
一维数组的元素作为函数实参,与同类型的简单变量作为实参一样,是单向的值传递,即数组元素的值传给形参,从而形参是改变不影响实参
数组名代表着整个数组的地址,如果一维数组的名字作为函数实参,传递的是整个数组,即形参数组和实参数组完全相同,是存放在同一存储空间的同一个数组。这样形参数组
修改时,实参数组也同时被修改了。形参数组的元素个数可以省略。
#includestdio.h
//数组作为函数参数,可以省略元素个数
//数组作为函数参数,传递是整个数组的地址,修改了函数形参数组元素的值,会影响到外面的实参数组
void change(int array[])
{
printf("array ==%p\n",array);
array[0] = 100;
}
int main()
{
int ages[6] = {10,11,13,15,11,18};
printf("array ==%p\n",ages);
change(ages);
printf("%d\n",ages[0]);
return 0;
}
输出结果为: array ==0x7fff5be26c00
array ==0x7fff5be26c00
100