这样传递是通过指针传递的么?
typedef long numtype[MAXL + 1];
然后这两个函数这样
void init(numtype a){
memset(a, 0, sizeof(numtype));
a[0] = 1;
}
void plus(numtype a, numtype b){
long i,len = max(a[0],b[0]);
for (i = 1; i <= len; i++){
a[i] += b[i];
a[i + 1] += a[i] / 10;
a[i] %= 10;
}
if (a[a[0] + 1]) a[0]++;
}
这样传递的时候是不是通过指针传递的?
[解决办法]
是的~
[解决办法]
数组作为参数依然会蜕化为指针
[解决办法]
要返回数组,
通常的做法是在调用点定义数组,
然后给函数传递数组首地址,以及数组长度(因为数组退化为指针,丢失长度信息)
然后在函数中对数组操作 ~
[解决办法]
在函数里定义是返回不了的。函数因为返回后,c 就被释放掉了。返回以后也是垃圾值
[解决办法]
1.是的,是指针,因为数组作形参的时候退化为指针
2.返回一个数组是不允许的,你想返回numtype ,就相当于
long [MAXL + 1] get()
{
numtype c;
.....
return c
}
这是不行的,因为返回类型是一个数组
3.get定义返回类型是long *是对的,是返回long类型的指针