无法以C++打印阵列
Unable to print array in C++
我无法让以下代码正常工作。
#include <iostream>
using namespace std;
void neuron(double inputs[])
{
for (int i = 0; i < sizeof(inputs); i++) {
cout<<inputs[i];
}
}
int main()
{
double inputs[] = {10,12,12};
neuron(inputs);
return 0;
}
我想将数组传递给函数neuron
然后打印元素。我做不到。代码给了我垃圾值。这段代码有什么问题?
#include <iostream>
using namespace std;
template<size_t size>
void neuron(double (&inputs)[size])
{
for (size_t i = 0; i < size; i++) {
cout<<inputs[i]<<endl;
}
}
int main()
{
double inputs[] = {10,12,12};
neuron(inputs);
return 0;
}
例
如果将
inputs
传递给neuron
则neuron
只会看到数组的起始地址,而不会看到数组的长度。您需要将长度作为额外参数传递。也不是说sizeof
给你数组的大小(以字节为单位(,而不是元素的数量。
void neuron(double inputs[], size_t len)
{
for (int i = 0; i < len; i++) {
cout<<inputs[i];
}
}
int main()
{
double inputs[] = {10,12,12};
neuron(Inputs, sizeof inputs / sizeof inputs[0]);
return 0;
}
由于您的问题被标记为C++因此您最好使用C++ STL 类型,如 std::vector
(对于动态大小的数组(或std::array
(对于固定大小的数组(。
您正在传递 arrray 的第一个元素的指针,因此大小将是双精度。
这就是我的方式:
#include <iostream>
using namespace std;
void neuron(double inputs[], int size)
{
for (int i = 0; i < size; i++) {
cout<<inputs[i];
}
}
int main()
{
double inputs[] = {10,12,12};
neuron(inputs, sizeof(inputs)/sizeof(double));
return 0;
}
只需尝试以下代码
#include <iostream>
using namespace std;
void neuron(double inputs[],int length)
{
for (int i = 0; i <length; i++) {
cout<<inputs[i];
}
}
int main()
{
double inputs[] = {10,12,12,22,22};
neuron(inputs, (sizeof(inputs)/sizeof(*inputs)));
return 0;
}
sizeof(( 返回基元类型的大小而不是数组的大小。
相关文章:
- 库特<<恩德尔;不适用于打印 2D 阵列
- 数组类 阵列的打印输出
- 阵列打印功能
- 打印原始阵列和更改的阵列
- 多次打印出整个阵列
- 无法弄清楚为什么我的打印阵列要替换元素
- 阵列无法正确打印 C++
- 如何打印一个字符阵列和其中的特定字符
- C++ Visual 工作室中的逻辑错误.阵列打印的是地址而不是内容
- 指针阵列打印值
- 打印我的字符串阵列时,会遇到细分错误
- 从指针打印动态int阵列中获取怪异的字符
- 无法打印阵列或分配给阵列
- 有没有办法更快地打印2D阵列
- 为什么 2-D 阵列在不应该打印的地方打印 1?
- 按升序打印阵列旨在下降
- 无法以C++打印阵列
- C 打印阵列
- 打印阵列出现错误C++
- 我想在新行打印阵列的每个插槽