| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 632 人关注过本帖
标题:请教数组在函数调用时的问题
取消只看楼主 加入收藏
xdn666
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-4-12
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
请教数组在函数调用时的问题
我的意思是想实现这样一个功能:
#include<stdio.h>
void f(int a);
void ff(int * a);
int main(void){
int a = 4;
int b = 5;
f(a);
ff(&b);
printf("a = %d\n",a);
printf("b = %d\n",b);
return 0;
}
void f(int a){

a = 1;
}
void ff(int * a){
*a = 1;
}
在单个数值上f函数可以直接调用a的值而不改变,但是第二个传入了指针,所以b会改变
我想怎样实现数组的传递而不改变其值,比如f的功能,但是数组作为函数的参数好像默认只能传入指针,所以值会被改变。
请问有什么办法可以实现
搜索更多相关主题的帖子: return 
2013-04-12 17:14
xdn666
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-4-12
收藏
得分:0 
回复 2楼 邓士林
请问调用中间变量是什么意思?
2013-04-12 17:28
xdn666
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-4-12
收藏
得分:0 
回复 4楼 邓士林
请问您的意思是新建一个数组吗?
2013-04-12 18:46
xdn666
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-4-12
收藏
得分:0 
因为算法本身需要在函数内生成一组值为0的数组,然后反复计算赋值,数组比较大,循环次数又比较多,所以我想每次是否需要很长时间来calloc我的想法是能否从外部直接调用main函数里定义的值为0的数组,这样计算速度会不会变快。
void function(double a[rxy],double R[rxy],double FR[rxy]){
    int p,q;
    double * cc;
    cc = (double*)calloc(rxy,sizeof(double));
    double * fr;
    fr = (double*)calloc(rxy,sizeof(double));
    for(p = 0;p <= Lx;++p){
        for(q = 0;q <=Ly;++q){
            for(int k = 0;k <= Lx - p;++k){
                for(int l = 0;l <= Ly - q;++l){
                       fr[p * (Ly + 1) + q] = a[k * (Ly + 1) + l] * a[k * (Ly + 1) + l + p * (Ly + 1) + q];
                      cc[p * (Ly + 1) + q] = cc[p * (Ly + 1) + q] + fr[p * (Ly + 1) + q];
                }
            }
            cc[p * (Ly + 1) + q] = cc[p * (Ly + 1) + q] - R[p * (Ly + 1) + q];
        }
    }
    for(int i = 0;i <= Lx;++i){
        for(int j = 0;j <= Ly;++j){
            FR[i * (Ly + 1) + j] = cc[i * (Ly + 1) + j];
        }
    }
    free(cc);free(fr);
}
就是我想把前几句的calloc在外部就定义好,然后作为参数传递给函数,而不改变其值,使得以后的函数调用还是初始化的数组。
2013-04-13 15:59
快速回复:请教数组在函数调用时的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.072976 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved