来个C++高手,关于数组作形参时的默认值问题

例inta(intb=0){a=b;returnb;}这个函数直接调用a();的返回值为0,因为默认参数为0我现想要的是当形参为数组时默认参数该如何设置,比如inta[1... 例int a(int b=0){a=b;return b;}
这个函数直接调用a();的返回值为0,因为默认参数为0
我现想要的是当形参为数组时默认参数该如何设置,比如
int a[12]={};
int b[12];
int *arr(int a[]){
for(int i=0;i<12;i++)b[i]=a[i];
return b;
}
如果调用arr(a);显然返回的指针对应的数组全为0
我想要的是arr()一样可以达到这个效果
展开
 我来答
amote258
2010-09-08 · TA获得超过1964个赞
知道小有建树答主
回答量:1101
采纳率:0%
帮助的人:946万
展开全部
a(int b=0) 如果直接使用a(),因为b=0的存在,所以皮尺腔是就正确了。
而 int *arr(int a[]) 不存在默认赋值,再说了。你循环12次,你怎么保证 a就困闷是的大小呢。
由于你的b[12]是全局定义,你在arr对b进行燃衫了循环赋值,没有任何必要return b,b本来就是全局嘛。既然int a[12]也是全局
不如这样
int a[12]={};
int b[12];
void arr()//不用任何参数
{
for(int i=0;i<12;i++)b[i]=a[i];
}
chenxiao_heng
2010-09-08 · TA获得超过435个赞
知道小有建树答主
回答量:249
采纳率:0%
帮助的人:327万
展开全部
不可以的,一个变量就团乎一个初始值,数组没法的

可以这样,使用指者或销针,首游将指针初始化为NULL,在函数里做点判断。

int *arr(int *a=NULL)
{
if(a)
{
for(int i=0; i<12; i++)b[i]=a[i];
}
else
{
for(int i=0; i<12; i++)b[i]=0;
}
return b;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flameleo11
2010-09-08 · TA获得超过5343个赞
知道大有可为答主
回答量:1943
采纳率:50%
帮助的人:980万
展开全部
这个简单
///////////// 数组的大小必须传,否则
////////////[1] 就用类模拟 动态开辟内存
/段睁//////////[2] 就用全局变量初始化数组握汪岁大小
int *arr(int a[] = NULL, int size = 0){
if (0==size) return NULL;
int *p = new int[size];
if (NULL==p) cerr<<"new array error!"<陵州<endl;
if (NULL==a) {
for(int i=0; i<size; i++){
p[i] = 0;
}
}
else{
for(int i=0; i<size; i++){
p[i] = a[i];
}
}
return p;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zzjb011
2010-09-08 · TA获得超过274个赞
知道答主
回答量:228
采纳率:0%
帮助的人:62万
展开全部
是不是这个?看看!配租唤
#include<iostream>
using namespace std;
int a[12]={0};
int *arr(int aa[]=a){int*b=new int[12];
for(int i=0;i<12;i++)b[i]=aa[i];
return b;
}

void main()
{
int*b=new int[12];
for(int i=0;i<12;i++)cout<<a[i]<<' ';cout<<培凯'\n';
b=arr(a);
for( i=0;i<12;i++)cout<<b[i]<<型兄' ';cout<<'\n';
b=arr();
for( i=0;i<12;i++)cout<<b[i]<<' ';cout<<'\n';
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
猪头或火宝宝
2010-09-08 · TA获得超过2758个赞
知道小有建树答主
回答量:1001
采纳率:0%
帮助的人:1520万
展开全部
你好!!
不是很理解你的意思,可以交流一下吧!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式