为什么C和C ++编译器在从未强制实施时允许函数签名中的数组长度?
这是我在学习期间发现的:
#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])。或者它有其他我不知道的含义?
牧羊人nacy
12345678_0001
慕桂英4014372
随时随地看视频慕课网APP