为什么数组从0开始
数组变量可以用作指针,这个指针指向数组的第一个元素,也就是说除了方括号表示法,还可以用*运算符读取数组的第一个元素,像这样:
地址只是一个数字,所以可以进行指针算术运算,比如为了找到存储器中的下一个地址,可以增加指针的值。既可以用方括号加上索引值2来读取元素,也可以对第一个元素的地址加2:
- printf("第三单: %i 杯\n", drinks[2]);
- printf("第三单: %i 杯\n", *(drinks + 2));
总之,表达式drinks[i]
和*(drinks + i)
是等价的,这解释了为什么数组要从索引0开始,所谓索引,其实就是为了找到元素的地址单元,指针需要加上的那个数字。
磨笔上阵
使用指针算术运算的魔力修复一颗破碎的心,下面这个函数将跳过文本消息的前六个字符。
磨笔上阵解答
你用指针算术运算的魔力修复了一颗破碎的心,下面这个函数跳过了文本消息的前六个字符。