由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - C/C++里数组作函数的参数的话应该怎么写?
相关主题
How to find the size of an array? Thanks.砸了面试,发面题
C++问题大牛来做一下这道题
请教C/C++小C++ Q21: size of virtual table
一个C++的问题![C++问题]请教关于几种size of class
heap里面delete一个非root的节点再问一个C的malloc( )
关于数组size的问题菜鸟问个问题,如果太简单了请原谅我的愚蠢
怎么在main()函数里面free我malloc()的空间recursive中该用reference 还是普通变量传递?
大家新年好。 请教一个 c interview question (转载)A家面筋:最多用一个循环,怎么去重复?
相关话题的讨论汇总
话题: int话题: func话题: void话题: c++话题: 数组
进入JobHunting版参与讨论
1 (共1页)
d**********o
发帖数: 11
1
void func(int []a)
还是
void func(int a[]) ?
两种我都见过
有啥区别没有?
e*******s
发帖数: 1067
2
void func(int a[])
d**********o
发帖数: 11
3
另外一种我在书上也见过的
就是不知道啥区别

【在 e*******s 的大作中提到】
: void func(int a[])
s**x
发帖数: 7506
4
第一个是java 的吧?c 里面世纪上没有数组参数这个概念,就是一指针.
Void f(int *a)
Void f(int a[]) 应该是等价的。

★ 发自iPhone App: ChineseWeb 7.8

【在 d**********o 的大作中提到】
: void func(int []a)
: 还是
: void func(int a[]) ?
: 两种我都见过
: 有啥区别没有?

r**h
发帖数: 1288
5
上面是java,下面是c
java和c挺容易搞混的其实

【在 d**********o 的大作中提到】
: void func(int []a)
: 还是
: void func(int a[]) ?
: 两种我都见过
: 有啥区别没有?

a**********3
发帖数: 64
6
应该没啥区别,function里面一般都是方括号写后面比较常见,写前面的我只在java
declaration的时候看到。
不过C++里面一般都用pointer int * arr这样子。

【在 d**********o 的大作中提到】
: 另外一种我在书上也见过的
: 就是不知道啥区别

b******7
发帖数: 92
7
数组作参数要带上长度
void func(int a[],size_t len)
c/c++不能直接用参数传递数组,而将其转化为指针传递
上面的定义等价于void func(int * a,size_t len)
测试如下的case就可知道
void func(int a[], size_t len)
{
cout< }
int main()
{
int a[] = {1,2};
cout< func(a,sizeof(a)/sizeof(int));
return 0;
}
d**********x
发帖数: 4083
8
c++一般都用const vector&吧
或者用这玩意:
#include
using namespace std;
template
void foo(int (&arr)[N]) {
cout << N << endl;
cout << sizeof(arr) << endl;
}
int main() {
int a[10];
foo(a);
return 0;
}

【在 b******7 的大作中提到】
: 数组作参数要带上长度
: void func(int a[],size_t len)
: c/c++不能直接用参数传递数组,而将其转化为指针传递
: 上面的定义等价于void func(int * a,size_t len)
: 测试如下的case就可知道
: void func(int a[], size_t len)
: {
: cout<: }
: int main()

b***m
发帖数: 5987
9
按一般都用指针加长度。
a****s
发帖数: 559
10
一般传指针和长度两个参数。
void func(int a[], size_t len)
调用时,数组参数decay成int*指针。
如果要在函数里保留参数的数组特性,
可以传array by reference
void func( int (& a)[10] )
或者传array by pointer
void func( int (* a)[10] )
限制是:数组size需要明确定义。
如果要从函数返回数组,同样
可以return by reference
int (& func())[10]
也可以return by pointer
int (* func())[10]
同样限制,需要明确定义数组size。
1 (共1页)
进入JobHunting版参与讨论
相关主题
A家面筋:最多用一个循环,怎么去重复?heap里面delete一个非root的节点
做了一下Google的切木头关于数组size的问题
这道题太神奇了,求排序算法,并且要求时间复杂度为O(n),空间复杂度O(1),怎么在main()函数里面free我malloc()的空间
一个N个数的int数组如何找到3个majority的数?大家新年好。 请教一个 c interview question (转载)
How to find the size of an array? Thanks.砸了面试,发面题
C++问题大牛来做一下这道题
请教C/C++小C++ Q21: size of virtual table
一个C++的问题![C++问题]请教关于几种size of class
相关话题的讨论汇总
话题: int话题: func话题: void话题: c++话题: 数组