一维数组
传递数组给函数的3个原则
1.函数调用时只需传递数组名。
2.在函数定义中,形参的类型必须与数组的相同,数组的大小不必指定。
3.函数原型必须定义为参数是一个数组。
#include
<stdio.h>
#include
<stdlib.h>
void
sort(
int
x[],
int
m);
int
main()
{
int
i;
int
marks[5]
= {40, 90, 73, 81, 35};
printf
(
"Marks
before sorting\n"
);
for
(i
= 0; i < 5; i++)
printf
(
"%d
"
,
marks[i]);
printf
(
"\n"
);
sort(marks,
5);
printf
(
"Marks
after sorting\n"
);
for
(i
= 0; i < 5; i++)
printf
(
"%d
"
,
marks[i]);
printf
(
"\n"
);
system
(
"pause"
);
}
void
sort(
int
x[],
int
m)
{
int
i,
j , t;
for
(i
= 1; i <= m-1; i++)
for
(j
=1; j <= m-i; j++)
if
(x[j-1]
>= x[j])
{
t
= x[j-1];
x[j-1]
= x [j];
x[j]
= t;
}
}
二维数组
1.函数调用时只需传递数组名。
2.在函数定义中,必须使用两个方括号以表明数组为二维的。
3.必须指定数组第二个维的大小。
4.函数原型的定义必须与函数头相同
将字符串传递给函数
1.要传递的字符串必须在定义时声明为函数的形参。例如:
void display(char item_name[])
{
……
}
2.函数原型必须能表示参数是字符串。对于上面的函数定义,其原型可以写做:
void display(char str[]);
3.函数调用必须带一个无下标的字符串数组名作为其实参。例如:
display(name);
其中,name是在调用函数中已正确声明的字符串数组。
在C语言中,与数组一样,字符串不能按值传递给函数。