0

I am getting a little confused with arrays and pointers as formal parameters in functions. Could someone explain me the difference between these functions declarations? If they are all the same and also if they accept the same arguments?

// In case of using char
void printArray(const char arr[], const size_t arraySize);
void printArray(const char* arr, const size_t arraySize);
void printArray(const char* arr[], const size_t arraySize);

// In case of using int
void printArray(const int arr[], const size_t arraySize);
void printArray(const int* arr, const size_t arraySize);
void printArray(const int* arr[], const size_t arraySize);

And also I think a function with a formal parameter int* arr accepts both:

int val{5}
int valArray[] {1, 2, 3};
int* ptrVal = &val;
int* ptrValArray {valArray};

printArray(&val, 1);
printArray(valArray, 3);
printArray(&valArray, 3);
printArray(ptrVal, 1);
printArray(ptrValArray , 3);

Am I right?

Lucas Santos
  • 597
  • 6
  • 18

0 Answers0