gpt4 book ai didi

c++ - 这是将数组传递给函数的正确方法吗?

转载 作者:行者123 更新时间:2023-11-28 00:46:21 25 4
gpt4 key购买 nike

这是在函数中传递数组的工作程序,但我无法理解在 print 函数中只传递了数组的基地址,但我仍然能够使用下标 a[i] 访问数组。我知道正确的方法是 *(a+i) 但为什么它也适用于下标?

#include <iostream>
#include <conio.h>
void print(int *a);
using namespace std;
int main()
{
int arr[3]={1,2,3};
print(arr);
getch();
return 0;
}
void print(int *a)
{
for(int i=0;i<3;i++)
{
cout<<a[i];//how we are able to access array with subscipt a[i]
}
}

最佳答案

由于您传递的是一个指针(指向特定的内存地址),因此即使在函数内部也可以像往常一样对待它。指针和数组关系非常密切,用起来刚刚好。

a[0] 和 *a 是一回事,a[1] 和 *(a+1) 等也是。

“指针相当于它指向的第一个元素的地址” - 来自 http://www.cplusplus.com/doc/tutorial/pointers/

关于c++ - 这是将数组传递给函数的正确方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16124910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com