mdsk.net
当前位置:首页 >> C语言如何在子函数中改变主函数数组值? >>

C语言如何在子函数中改变主函数数组值?

用数组时,必须要知道二维数组的后一个维度,否则无法正确修改,比如: void modify(int a[][10]) { a[1][2] = 12; a[2][5] = 25; } void main() { int a[5][10]; a[1][2] = 0; a[2][5] = 0; modify(a); printf("a(1,2)=%d, a(2,5)=%d\n",12, 25...

#include //望采纳!! int main(void) { void aaa(int *);//声明函数aaa int x1[3][3]; aaa(x1); printf("%d\n",x1[1][1]);//{{1,2,3},{4,5,6},{7,8,9}};输出元素[1][1],很明显是5 } void aaa(int *x1[3][3]) { //x1[3][3]={{10,10,10},{12,12,12...

可以在子函数里型定义一个数组,用for循环赋值,改变新数组,不去改变原数组。

C语言不会复制整个数组,它会要求传入数组名(一个指向数组首地址的const指针),函数中对整数的改变其实就是对实际数组的改变!

提供2个办法供参考: 把自定义函数中的数组创建为static存储性质,并把首地址及大小返回给主函数。 在自定义函数中创建数组时用动态方法建立的堆上,把首地址及大小返回给主函数,在主函数中使用完毕后释放。

把数组名作为实参,传递给子函数即可,这是地址传递,子函数中处理的结果将影响到主函数数组的元素值。课本上“数组做函数参数”部分应该有例子可以参考。

把数组指针和数组长度作为实参传递进入即可

#include #include #include #include using namespace std; //法一:子函数内将数组指针复制给形参指针,正如楼上的思路 //法二:return返回指针(需要用C++) int* shuzu() { int i; int a[10] = {1,2,3}; int *pa; pa=a; srand((int)time(0))...

一般用 函数的 参数传递。 如果要通过函数返回值传递,可以用指针,另外保存数据的变量退出函数时不得消失。 例如: #include int * fun(int n) { int i; static int a[100]; // 这里用static for (i=0;i

网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com