指向c+中函数中的数组的指针+; 我是C++初学者。指针让我很困惑。特别是如何在函数和数组中使用它。我试图在函数中创建一个指向数组的指针,并将其输出。但是,它一直给我数组的地址,而不是值 void testing(int* arr){ cout << arr << endl; } int main() { int my_arr[]{ 4,7,1 }; testing(my_arr); string y; getline(cin, y); return 0; } 无效测试(int*arr){ cout
要打印数组中的值而不是起始地址,需要使用循环指向c+中函数中的数组的指针+; 我是C++初学者。指针让我很困惑。特别是如何在函数和数组中使用它。我试图在函数中创建一个指向数组的指针,并将其输出。但是,它一直给我数组的地址,而不是值 void testing(int* arr){ cout << arr << endl; } int main() { int my_arr[]{ 4,7,1 }; testing(my_arr); string y; getline(cin, y); return 0; } 无效测试(int*arr){ cout,c++,arrays,function,pointers,C++,Arrays,Function,Pointers,要打印数组中的值而不是起始地址,需要使用循环 #include <iostream> #include <string> // note extra param for length of array. void testing(int* arr, int len){ for (int i = 0; i < len; ++i) std::cout << arr[i] << " "; std::cout <
#include <iostream>
#include <string>
// note extra param for length of array.
void testing(int* arr, int len){
for (int i = 0; i < len; ++i)
std::cout << arr[i] << " ";
std::cout << "\n";
}
int main()
{
int my_arr[]{ 4,7,1 };
testing(my_arr, 3);
return 0;
}
#包括
#包括
//请注意数组长度的额外参数。
无效测试(内部*arr,内部len){
对于(int i=0;i std::cout要打印数组,可以使用数组索引或指针算法
void testing(int* arr, int len) {
for (int ctr = 0; ctr < len; ctr++) {
std::cout << *(arr + ctr) << std::endl;
}
}
int main()
{
int my_arr[]{ 4,7,1 };
testing(my_arr, 3);
return 0;
}
无效测试(int*arr,int len){
对于(int-ctr=0;ctrtesting()
中,您试图使用arr
元素而不使用其索引。
此处arr
是该内存的唯一基本内存地址。要从中获取值,必须指定索引
void testing(int* arr, int len)
{
for(int i = 0; i < len; i++)
{
cout << arr[i] << endl;
}
}
错误告诉您需要知道的一切。int*
不是指向int数组的指针。您确定没有使用测试(&my\u arr)调用函数吗;
?这就是错误给我的建议。@KenY-N你是说int*
与指向int数组的指针相同?你错了。指向int数组的指针是int**
或int*[]
,如错误中所示。“它一直给我数组的地址而不是值”。这是因为地址(第一项的,与数组地址相同)是您传递给流的内容。它精确地输出您告诉它要输出的内容。要输出数组值,请使用循环。它需要知道项的数量。阅读
int main()
{
int my_arr[]{ 4,7,1 };
testing(my_arr, sizeof(my_arr) / sizeof(int));
return 0;
}