Это то, что я нашел в течение моего учебного периода:
#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]
). Или у него есть другие значения, о которых я не знаю?