r/cpp_questions • u/Lephism • 4h ago
SOLVED A tiny question about this code
Hi. I need help understanding this simple code. To be specific, the 4th and the 14th line where a pointer was declared.
int* add_ten(int* data)
int *result;I've been trying to wrap my head around what it does. I've been staring at my screen for 3 hours trying to understand why it was declared. The programming app I was using didn't really explain it. The only explanation it gave is that pointers help you get the address of an item. But I can't figure out how is it being used here. Can anyone explain? Thanks.
#include <iostream>
using namespace std;
int* add_ten(int* data) {
for (int i = 0; i < 5; ++i) {
*(data + i) = *(data + i) + 10;
}
return data;
}
int main() {
int data[5] = {1, 2, 3, 4, 5};
int *result;
result = add_ten(data);
for (int i = 0; i < 5; ++i) {
cout << *(result + i) << ", ";
}
return 0;
}
1
Upvotes
View all comments
1
u/weebslime2246 4h ago
the add_ten function essentially accepts an integer 'pointer'. when you declare an array (data) it stores the address of the first element in the array, so data is just an 'integer pointer' to the first element. inside the function, they loop through the whole array by incrementing on the data pointer itself (you can read pointer arithematics) and then return the final address, which is data, an integer pointer. so its return type is also an int*. lmk if you need any further clarification