c – 了解这个double如何成为一个数组?
发布时间:2020-12-16 09:59:01 所属栏目:百科 来源:网络整理
导读:所以我目前正在阅读和学习来自互联网的代码(与人工神经网络相关),我发现了一部分代码,我不明白它为何起作用. double* inputNeurons;double* hiddenNeurons;double* outputNeurons; 这是它的宣布方式.然后在下一个代码中,它被更改并用作数组? inputNeurons =
所以我目前正在阅读和学习来自互联网的代码(与人工神经网络相关),我发现了一部分代码,我不明白它为何起作用.
double* inputNeurons; double* hiddenNeurons; double* outputNeurons; 这是它的宣布方式.然后在下一个代码中,它被更改并用作数组? inputNeurons = new( double[in + 1] ); for ( int i=0; i < in; i++ ) inputNeurons[i] = 0; inputNeurons[in] = -1; // 'in' is declared in the function as an int 所以,我想了解它为什么以及如何运作.它成了一个“双打”阵列吗?如果是这样,我还能以什么方式使用它?这可以用于结构甚至类吗? 解决方法
每个数组都可以视为指针.但这并不意味着每个指针都是一个数组.不要混淆了!
假设我们有一个数组int test [..],变量名也表示数组存储在内存中的地址.所以你可以写 int * p = test; 那时我的指针p“变成”一个数组,其中“变成”意味着“指向一个数组”.您的示例类似 – 唯一的区别是内存是动态分配的(堆)而不是堆栈(如我的示例中所示). 那么元素是如何被访问的? int i = test[0]; 或者我们可以说 int i = *p; 现在我们想要获得索引1处的元素: int i = test[1]; 或者 – 通过使用指针算术,我们可以写 int i = *(p + 1); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |