数组c语言在函数里 数组c语言在函数里怎么表示

C语言中自定义的函数中有数组,应该如何运用该函数

方法

成都创新互联-专业网站定制、快速模板网站建设、高性价比铁岭网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式铁岭网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖铁岭地区。费用合理售后完善,十余年实体公司更值得信赖。

有2

将该数组定义为全局变量,即:

int

g_arr;

void

fun()

{...}

void

main()

{...}

2.将该数组作为函数参数传递到自定义函数里,即:

void

fun(int

arr[])

{...}

void

main()

{

int

arr[10];

fun(arr);

}

c语言数组如何在函数中传递?不要指针传递

数组只能通过指针传递,不能通过值传递。

数组参数属于指针参数,指针参数即时传址参数(或叫引用参数), 如果想在函数中修改参数的值, 这是唯一的途径.

如果把数组当作参数, 不管愿意与否, 它就是指针, 指向第一个值的指针.

1. 数组参数就是指向第一个元素的指针: #include stdio.h

void getArr(int p[], int si);

int main(void)

{

int ns[] = {1,2,3,4,5};

getArr(ns, sizeof(ns)/sizeof(ns[0]));

getchar();

return 0;

}

void getArr(int p[], int si) {

int i;

for (i = 0; i si; i++) {

printf("%d\n", p[i]);

}

}

2. 干脆直接声明为指针: #include stdio.h

void getArr(int *p, int si);

int main(void)

{

int ns[] = {1,2,3,4,5};

getArr(ns, sizeof(ns)/sizeof(ns[0]));

getchar();

return 0;

}

void getArr(int *p, int si) {

int i;

for (i = 0; i si; i++) {

printf("%d\n", p[i]);

}

}

3. 即使你在形参中指定维数也不起作用: #include stdio.h

void getArr(int p[2], int si);

int main(void)

{

int ns[] = {1,2,3,4,5};

getArr(ns, sizeof(ns)/sizeof(ns[0]));

getchar();

return 0;

}

void getArr(int p[2], int si) {

int i;

for (i = 0; i si; i++) {

printf("%d\n", p[i]);

}

}

4. 既然是指针, 其值就有被修改的可能: #include stdio.h

void getArr(int p[], int si);

int main(void)

{

int ns[] = {1,2,3,4,5};

size_t i;

getArr(ns, sizeof(ns)/sizeof(ns[0]));

for (i = 0; i sizeof(ns)/sizeof(ns[0]); i++) {

printf("%d\n", *(ns+i));

}

getchar();

return 0;

}

void getArr(int p[], int si) {

int i;

for (i = 0; i si; i++) {

p[i]++;

}

}

5. 如果是字符数组, 它自己能判断数组尾界: #include stdio.h

void getArr(char p[]);

int main(void)

{

char ns[] = "ABCDEFG";

getArr(ns);

getchar();

return 0;

}

void getArr(char p[]) {

int i;

for (i = 0; p[i]; i++) {

printf("%c: %d\n", p[i], p[i]);

}

}

c语言的数组怎么传递到函数里面

例:

#includestdio.h

void fact(int *p, int n)

{

for(i = 0; i  n; ++i)

{

printf("%d ", p + i);

}

printf("\n");

p[3] = 6;

}

int main()

{

int a[5] = {1, 2, 3, 4, 5};

fact(a, 5);

for(i = 0; i  5; ++i)

{

printf("%d ", a[i]);

}

printf("\n");

return 0;

}

C语言,在函数里要输入一个数组怎么办

用指针就可以了,如

定义有int a[5];

则这样定义函数:

int fun(int *p, int size)

{

//p为数组的首地址

//size为数组的大小

//传递进去后可以像操作a一样用下标操作p

//如p[0], p[4]...

}

传递参数给函数可以这样写:

fun(a, 5);

若是多维数组,则第一维大小不给出,只指定后面的维数大小,如:

定义有int a[5][2];

则这样定义函数:

int fun(int p[][2], int size)

{

//p为数组的首地址

//size为第一维的大小

//传递进去后可以像操作a一样用下标操作p

//如p[0][1], p[4][1]...

}

传递参数给函数可以这样写:

fun(a, 5);

c语言数组在函数中的传递

c语言中、数组在函数中的传递可以数组元素的传递!还有就是数组名的传递!其实、数组名的传递类似指针!就是把数组的元素的首地址传到形参的!

在C语言中怎么将子函数中的数组和函数调用出来?

来传送子函数中的数组有多种方法——可以通过函数返回值返回地址传递数组;也可以通过函数输入参数来传递数组;还可以通过全局变量来传递数组。

子函数本身可以直接在作用域中进行调用。

1、通过函数返回值返回地址传递数组。

声明函数时需要声明函数返回值类型为对应数组的地址,此时可以返回数组的地址,结合数组元素的地址关系可以传递整个数组,同时可以根据数组的特性传递多个参数。

2、通过输入参数传递数组。

声明函数时提供空输入参数,调用函数时提供目标数组,即可以通过该数组调用子函数中的数组,该方法也可以用于传递多个参数。

3、通过全局变量来传递数组。

声明全局变量用于存储子函数中的数组,此时可以在全局变量作用域中读取调用子函数的数组。

注意:子函数是C语言模块化编程思想的核心,其方法是通过输入接口和输出接口实现对黑盒的调用,故对其内部数据的输入和调用也需要通过输入接口、输出接口和程序的公共区域实现。


当前文章:数组c语言在函数里 数组c语言在函数里怎么表示
文章URL:http://ybzwz.com/article/doocpoj.html