这是我在学习期间发现的:
#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;
}
Run Code Online (Sandbox Code Playgroud)
所以在变量中int dis(char a[1]),[1]似乎什么都不做,根本不起作用
,因为我可以使用a[2].就像int a[]或char *a.我知道数组名称是一个指针,以及如何传达一个数组,所以我的谜题不是这个部分.
我想知道的是为什么编译器允许这种行为(int a[1]).或者它有其他我不知道的含义?
#include<stdio.h>
main()
{ int x[3][5]={{1,2,10,4,5},{6,7,1,9,10},{11,12,13,14,15}};
printf("%d\n",x);
printf("%d\n",*x); }
Run Code Online (Sandbox Code Playgroud)
这里首先printf将打印第一个元素的地址.那么为什么第二个printf不会在地址x处输出值,即第一个值.要打印我需要写的值**x.