呵呵,问一个C语言中二维数组的问题。

呵呵,问题一、我是菜鸟,为什么C语言中有一、二维数组还有字符数组?感觉好蒙,不要复制资料请用自己的总结通俗易懂的讲讲。问题二、例题一中画有红线的1.2.3.4.5二维数组... 呵呵,问题一、我是菜鸟,为什么C语言中有一、二维数组还有字符数组?感觉好蒙,不要复制资料请用自己的总结通俗易懂的讲讲。
问题二、例题一中画有红线的1.2.3.4.5二维数组得出的值不懂?不懂在于二维数组a[3][3]不是三行三列吗,只有{{1},{2},{3}}是怎么得出图中的值的?b[3][3]={4,5,6}和a[3][3]={{1},{2},{3}}中赋的值大括号是有什么区别啊?
问题三、strcat(s1,s2)和strlen不懂,看书听讲时就没听懂。请就此例题二通俗的讲讲。
展开
 我来答
bqfyfive
2013-12-02 · 超过20用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:39万
展开全部
  1. 几维可以考虑理解为矩阵。a[2][3]是一个二行三列的矩阵。这个是数据的“形状”。“字符”数组是指这数组中的数据是“字符”这种数据“类型”。类型和形状讲的2回事。当然了,实际上a[x][y]中指的有这么一个数组a[x],x中y个元素。

  2. 如果按矩阵来理解则

                |[0][0],[0][1],[0][2]|

    a[3][3]=|[1][0],[1][1],[1][2]|

                |[2][0],[2][1],[2][2]|

    ->定义时a[x][3]={{1},{2},{3}},其中“{1}”中的{}为某一行里面所有元素的组合,即{1}代表矩阵中第一行的所有数据,因为只有一个,而没有特定说明下数据是由左向右填充的,所以a[0][0]=1。

    ->b因为只有一个{},在填充数据时没有特别说明,所以{}中的数据将按每行3个数据的个数进行填充,如果定义b时{}中有4个数字,则第4个数将填充到b[1][0]中。

  3. strcat和strlen自己baidu去,库函数。

追问
呵呵,上面的回答就提问解答得全面、易懂。你的回答好好,希望加百度hi好友让以后更好提问向你学习。
gao_gao_222
2013-12-02
知道答主
回答量:44
采纳率:0%
帮助的人:14万
展开全部
  1. 一维数组存放相同的值,但是如果是矩阵,行列式等类型的,用二维的就比较方便了.至于字符数组,只是说明它里面存放的元素是字符而已.

  2. 注意{{1},{2},{3}}里面的1,2,3是有{}的,在本题中表示每一行中的第一个元素分别为1,2,3.剩下的元素如a[1[2],a[2][2]等就默认是0了.而b[3][3]={4,5,6}这只有一个{},把4,5,6都包进去了。,表示b[0][0],b[0][1],b[0][2]分别为4,5,6.剩下的都为0了.

  3. strcat(s1,s2)是将第二个字符串复制到第一个字符串后面,拼成一个字符串.复制完成后,函数会添加'\0',表示字符串的结束.所以执行完strcat(s1,s2)后实际结果为123ABCDE\0.用strlen取长度,自然就是8了

追问
呵呵,加百度hi好友更好提问。好好的回答,希望以后更好的向你学习。
追答
好啊
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a9056be
2013-12-02
知道答主
回答量:4
采纳率:0%
帮助的人:6086
展开全部
问题一:其实没必要有二维数组,字符数组可以存放字符
问题二:a的赋值结果为a[0][0]=1,a[1][0]=2,a[2][0]=3,其余为0,如果不写大括号则依次赋值b[0][0]=4,b[0][1]=5,b[0][2]=6,写大括号则每个大括号代表一行
问题三:strcat函数用来连接两个字符串s1、s2,strlen用来计算字符串长度(不含结尾“\0”)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式