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

 我来答
我在哪我是谁X
推荐于2018-04-13 · TA获得超过1620个赞
知道小有建树答主
回答量:350
采纳率:0%
帮助的人:252万
展开全部
char(*a)[10] 说明该参数是一个数组指针,该指针指向一个包含10个元素的数组.
判断方法: 注意优先级, []的优先级高于*,而()可用来强行优先.
char(*a)[10] 首先由*a知道这是一个指针,再有[]知道该指针指向的是数组.
如果是char *a[10]
则首先由[] 知道这是一个数组,再有char *知道这个数组的内容是指针.
胡说不用费心7118
2012-02-10 · TA获得超过101个赞
知道答主
回答量:137
采纳率:100%
帮助的人:82.8万
展开全部
那个是行指针。。。
举个例子。。。
char str[3][10];
char (*a)[10];
str=a;
a指向str[0]的头元素。。即str[0][0],a+1指向str[1]的头元素。。。即str[1][0],以此类推。。。
话说指针的概念挺难的。。要好好琢磨。。。
追问
谢谢,不过输出*a,结果是整个str[0]中所有元素,为什么不只是头元素?
追答
因为你的控制符是'%s"吧,所以输出所有元素吧。。改用"%c"试试。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2012-02-10 · TA获得超过288个赞
知道答主
回答量:83
采纳率:0%
帮助的人:43.4万
展开全部
char表示行指针所指一维数组的数据类型,*表示其后变量是指针类型;10表示行指针所指一维数组长度是10;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-02-10
展开全部
char s[5][10];
char (*a)[10]=s; //这个表示a是指向一行有10个字符的行指针。a的类型与s一致,因此这儿可以赋值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lency_cn
2012-02-10 · TA获得超过287个赞
知道答主
回答量:229
采纳率:100%
帮助的人:169万
展开全部
首先离a最近的的是×,所以a是一个指针
a指向的数据类型是char p[10]
a是一个指向有十个元素的char数组的指针
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式