C语言中,数组下标可以是小数吗?
4个回答
展开全部
很有意思的问题,我曾经也想过这个问题。
很遗憾是不可以的,最根本原因是内存寻址必须是正整数。
假设有个整型数组:
int numberGroup = [ 20, 12, 9, 56, 17 ];
下标运算符(即中括号)通过给出的索引来找到指定元素,如:
numberGroup[ 2 ]
索引从 0 开始,因此 numberGroup[ 0 ] 是第一个数字,即“20”,而 numberGroup[ 2 ] 即第3个数字 “9”。
C 是这样找到 numberGroup[ 2 ] 的元素的:
1. 获得数组 numberGroup 的内存地址,假设为 0x3000,内存地址最小单位是字节。
2. int 类型长度目前采用4个字节,数据类型为寻址提供了必要的依据,要取索引为2的元素,偏移量 = 索引 * 类型长度,即 2 * 4,结果是8个字节的偏移量。
3. 因此,需将数组的起始地址 0x3000 加上 8,0x3008 是索引为 2 的元素的起始地址,通过读取 4 个字节(int 的长度)得到 numberGroup[ 2 ] 的元素最终的值。
所以,数组的下标不可以为小数。
很遗憾是不可以的,最根本原因是内存寻址必须是正整数。
假设有个整型数组:
int numberGroup = [ 20, 12, 9, 56, 17 ];
下标运算符(即中括号)通过给出的索引来找到指定元素,如:
numberGroup[ 2 ]
索引从 0 开始,因此 numberGroup[ 0 ] 是第一个数字,即“20”,而 numberGroup[ 2 ] 即第3个数字 “9”。
C 是这样找到 numberGroup[ 2 ] 的元素的:
1. 获得数组 numberGroup 的内存地址,假设为 0x3000,内存地址最小单位是字节。
2. int 类型长度目前采用4个字节,数据类型为寻址提供了必要的依据,要取索引为2的元素,偏移量 = 索引 * 类型长度,即 2 * 4,结果是8个字节的偏移量。
3. 因此,需将数组的起始地址 0x3000 加上 8,0x3008 是索引为 2 的元素的起始地址,通过读取 4 个字节(int 的长度)得到 numberGroup[ 2 ] 的元素最终的值。
所以,数组的下标不可以为小数。
展开全部
这个当然不可以,只能是整数,从0开始
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不可以。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询