我是C ++的新手,需要帮助。我想打印“C”的值,但它会继续打印它的地址。这是我的代码:
#include <iostream>
using namespace std;
int* test (int a[5], int b[5]) {
int *c = new int[5];
for (int i = 0; i < 5; i++) c[i] = a[i]+b[i];
return c;
}
int main() {
int A[5] = {22, 33, 44, 55, 66};
int B[5] = {22, 33, 44, 55, 66};
int* C[10] = {test(A,B)};
for (int i = 0; i < 10; i++) cout<< &C[i] <<endl;
return 0;
}
谢谢它的推进。
答案 0 :(得分:2)
首先int* C[10] = {test(A,B)};
应为int * C = test(A,B);
,因为您在函数中创建数组并返回指向它的指针。其次,您应在致电delete [] C
时在主管末端拨打new[]
,每次拨打new[]
时,都应致电delete[]
。最后,您使用cout<< &C[i] <<endl;
中的运算符地址(&amp;),因为它的名称将为您提供C[i]
的地址,而不是其值。
答案 1 :(得分:1)
摆脱此行的&
for (int i = 0; i < 10; i++) cout<< &C[i] <<endl;
所以它只是
for (int i = 0; i < 10; i++) cout<< C[i] <<endl;
该上下文中的&
运算符字面意思是您想要获取该对象的地址,因此它输出的内容就不足为奇了。
答案 2 :(得分:0)
&安培;给出变量的地址。因此&amp; C [i]给出了数组C的第i个元素的地址。只需打印没有&amp;。