C语言中函数形参是char (*a)[10],这是什么意思??求教各位,谢谢!

2025-02-26 19:27:34
推荐回答(5个)
回答1:

char(*a)[10] 说明该参数是一个数组指针,该指针指向一个包含10个元素的数组.
判断方法: 注意优先级, []的优先级高于*,而()可用来强行优先.
char(*a)[10] 首先由*a知道这是一个指针,再有[]知道该指针指向的是数组.
如果是char *a[10]
则首先由[] 知道这是一个数组,再有char *知道这个数组的内容是指针.

回答2:

那个是行指针。。。
举个例子。。。
char str[3][10];
char (*a)[10];
str=a;
a指向str[0]的头元素。。即str[0][0],a+1指向str[1]的头元素。。。即str[1][0],以此类推。。。
话说指针的概念挺难的。。要好好琢磨。。。

回答3:

char表示行指针所指一维数组的数据类型,*表示其后变量是指针类型;10表示行指针所指一维数组长度是10;

回答4:

char s[5][10];
char (*a)[10]=s; //这个表示a是指向一行有10个字符的行指针。a的类型与s一致,因此这儿可以赋值。

回答5:

首先离a最近的的是×,所以a是一个指针
a指向的数据类型是char p[10]
a是一个指向有十个元素的char数组的指针