In c/c++, if the value of the array in the main function called in the sub-function is changed, will the array itself in the main function change?

  c++, question

Examples of functions are as follows:

void test(float L[25][30])
 {
 for (int i = 0;   i < 25;  i++)
 for (int j = 0;   j < 30;  j++)
 L[i][j] = L[i][j] + 1;  //Simple Test
 }
 int main()
 {
 float L[25][30];
 L[i][j]=  ......
 ...
 test(L);
 return 0;
 }

My test is that L in the main function does change. Excuse me, this is because the array itself is a pointer. Or is it because I made a mistake and need to write another pointer to return? Thank you

void test(float L[25] [30])
The above statement is equivalent to
void test(float L[][30]);
Or
void test(float (*L)[30]);
When an array is used as a function parameter, it is treated as a pointer. Therefore, there is no characteristic of array. You can try to sizeof(L) in the test(L) function and sizeof(L) outside the function. It can be seen that the two outputs are different. The array has array length information, but the pointer does not point to the length information of the content. This is why, in many cases, api designs involving array and pointer parameters usually pass a length information parameter.
In addition, test(L);
Where l refers to the address of L[0] [0], you can try to output * * l.
Summary:
1. The array is not a pointer. The array has array length information, but the pointer does not.
2. As a function parameter, the array is treated as a pointer.