指向整数数组的指针和打印总和
Pointer to an Integer Array and Printing Sum
所以,有人告诉我...
“编写一个函数 Adder(),它接收一个指向整数数组的指针作为输入,并使用它
指向 return 数组元素总和的指针。”
我非常成功。我的密码是
#include <bits/stdc++.h>
using namespace std;
int Adder (int *ptr)
{
int sum=0;
for (int i=0; i<5; i++)
{
sum=*(ptr+i)+sum;
}
return sum;
}
int main(){
int array[5]={1,1,1,1,1};
int sum;
int *ptr=array;
Adder(ptr);
sum=Adder(ptr);
cout<<sum;
}
我不明白的地方是
Adder(ptr)
然后
int Adder (int *ptr)
"ptr" 保存地址,对吧?而“*ptr”保存的是实际值。我不明白这是怎么回事。有人可以解释一下吗?
行
int Adder (int *ptr)
定义一个函数,该函数将指向 int
的指针作为其参数。在此上下文中,*ptr
不引用 ptr
指向的值。
行
Adder(ptr);
调用该函数,传递名为 ptr
.
的本地指针
之所以可行,是因为将 1 添加到 int
指针(在您的情况下为 ptr
)实际上会增加 int
的大小(这可能会有所不同,具体取决于机器)。
查看此问题的答案以获得更详细的解释:Why a pointer + 1 add 4 actually
所以,有人告诉我... “编写一个函数 Adder(),它接收一个指向整数数组的指针作为输入,并使用它 指向 return 数组元素总和的指针。” 我非常成功。我的密码是
#include <bits/stdc++.h>
using namespace std;
int Adder (int *ptr)
{
int sum=0;
for (int i=0; i<5; i++)
{
sum=*(ptr+i)+sum;
}
return sum;
}
int main(){
int array[5]={1,1,1,1,1};
int sum;
int *ptr=array;
Adder(ptr);
sum=Adder(ptr);
cout<<sum;
}
我不明白的地方是
Adder(ptr)
然后
int Adder (int *ptr)
"ptr" 保存地址,对吧?而“*ptr”保存的是实际值。我不明白这是怎么回事。有人可以解释一下吗?
行
int Adder (int *ptr)
定义一个函数,该函数将指向 int
的指针作为其参数。在此上下文中,*ptr
不引用 ptr
指向的值。
行
Adder(ptr);
调用该函数,传递名为 ptr
.
之所以可行,是因为将 1 添加到 int
指针(在您的情况下为 ptr
)实际上会增加 int
的大小(这可能会有所不同,具体取决于机器)。
查看此问题的答案以获得更详细的解释:Why a pointer + 1 add 4 actually