早教吧 育儿知识 作业答案 考试题库 百科 知识分享

题目:二位数组a的每个元素是由6个字符组成的串,行下标i的范围从0-8,列下标j的范围是从1-10.若a按行存放,元素a[8,5]的起始地址与当a按列存放的元素()的起始地址一致?这道题应该怎么解呢?

题目详情
题目:
二位数组a的每个元素是由6个字符组成的串,行下标i的范围从0-8,列下标j的范围是从1-10.若a按行存放,元素a[8,5]的起始地址与当a按列存放的元素()的起始地址一致?这道题应该怎么解呢?答案是a[3,10].
不是应该是a[5,8]吗?数据结构数组以行为主序与以列为主序的关系是什么呢?请知道的大侠指教下,谢谢!
▼优质解答
答案和解析
行主序存储和列主序存储可简单理解为:
行主序存储顺序[0,1] [0,2] ...[0,10] [1,1] [1,2] ...[8,5] ...[8,9] [8,10]
列主序存储顺序[0,1] [1,1] ...[8,1] [0,2] ...[7,10] [8,10]
一行10元素 一列9元素
行下标起始为0 列下标起始为1 所以[8,5]是第10*8+5=85位元素
按列主序来的话就是85/9=9 mod 4 就是位于第4行第9列
行下标起始为0 列下标起始为1 所以就是[3,10]了
实在不懂 你画个9*10的表格 数数就明白了