【发布时间】:2013-01-10 17:20:55
【问题描述】:
你好,我有这个功能:
void vector(int imputC[]) {
//return v*
//imputC[].lenght
int a =sizeof(imputC) / sizeof(int);
// float v[2 * a + 2];
// v[0]=0;
for (int i = 0; i < a ; i++)
v[i] =(float)imputC[i];
for(int j = 0; j < 10; j++)
cout << a << endl;
}
主要:
int main() {
int array[] = { 23, 5, -10, 0, 0, 321, 1, 2, 99, 30 };
// float *v[22];
vector(array);
}
a 的大小是 1。这是为什么呢?我不明白,我认为这是唯一的对象。
【问题讨论】:
-
这是你能想到的最好的格式吗?
-
究竟为什么要打印出
a10 次? -
sizeof() 不是为了那个。 "sizeof 用于计算任何数据类型的大小,以表示该类型所需的字节数" 来衡量。在使用函数之前阅读文档。
-
@MarcB - 只是为了真正确保 a 为 1。或者使数组具有 1111111111 个元素。
-
假设您实际使用的是 C++,只需使用向量而不是数组,复制就变得很简单(只需使用像
auto b = a;这样的赋值)。