一维数组
传递数组给函数的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语言中,与数组一样,字符串不能按值传递给函数。