在参数中指定数组的大小有什么影响吗?例如。
void SetIDs(int IDs[22] );
对比
void SetIDs (int IDs[] );
它什么都不做吗?
最佳答案
不,如果按值传递,参数中的数组类型说明符总是调整为指针。
void SetIDs (int IDs[22] );
void SetIDs (int IDs[] );
void SetIDs (int *IDs );
都产生相同的代码。即使是 SetIDs 中的 sizeof IDs
也只会返回指针的大小,就好像 IDs 被声明为 int *IDs
一样。
当您通过引用传递或具有多维数组时,数组大小变得相关:
void SetIDs (int (&IDs)[22] );
此 SetID 将只接受(引用)大小为 22 的 int 数组。
void SetIDs (int IDs[22][42] );
// equivalent to
void SetIDs (int (*IDs)[42]);
此 SetID 将接受指向大小为 42 的 int 数组(或数组)的指针。
关于c++ - 在参数中指定数组大小有什么作用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32575810/