char(*a)[10] 说明该参数是一个数组指针,该指针指向一个包含10个元素的数组.
判断方法: 注意优先级, []的优先级高于*,而()可用来强行优先.
char(*a)[10] 首先由*a知道这是一个指针,再有[]知道该指针指向的是数组.
如果是char *a[10]
则首先由[] 知道这是一个数组,再有char *知道这个数组的内容是指针.
那个是行指针。。。
举个例子。。。
char str[3][10];
char (*a)[10];
str=a;
a指向str[0]的头元素。。即str[0][0],a+1指向str[1]的头元素。。。即str[1][0],以此类推。。。
话说指针的概念挺难的。。要好好琢磨。。。
char表示行指针所指一维数组的数据类型,*表示其后变量是指针类型;10表示行指针所指一维数组长度是10;
char s[5][10];
char (*a)[10]=s; //这个表示a是指向一行有10个字符的行指针。a的类型与s一致,因此这儿可以赋值。
首先离a最近的的是×,所以a是一个指针
a指向的数据类型是char p[10]
a是一个指向有十个元素的char数组的指针