Это то, что я нашел в течение моего учебного периода:
#include<iostream>
using namespace std;
int dis(char a[1])
{
int length = strlen(a);
char c = a[2];
return length;
}
int main()
{
char b[4] = "abc";
int c = dis(b);
cout << c;
return 0;
}
Итак, в переменной int dis(char a[1]) [1], кажется, ничего не делает и не работает на
все, потому что я могу использовать a[2]. Также как int a[] или char *a. Я знаю, что имя массива - это указатель и как передать массив, поэтому моя головоломка не касается этой части.
Я хочу знать, почему компиляторы допускают такое поведение (int a[1]). Или у него есть другие значения, о которых я не знаю?