C语言第28课:理解二维数组地址的概念,与一维数组比较地址偏移时的不同( 二 )

示例代码1

上述这段C语言代码 , 会跟我们平常多数时候写的数组的代码不一样 , 在实际开发中 , 我们不要写较为生僻的代码写法 , 我们就使用最常用的写法就好了 。 只是在这里我们为了更加理解数组的本质 , 所以我们暂时先稍微来了解一下这样的写法 。

第7行定义了一个一维数组str , 有三个字符型元素:“a”、“b”、“c”

在第12行、第15行 , 我们见到了一种较为奇怪的写法:(str+1)[0
, (str+2)[0

这两种写法 , 就等同于这样写:str[1
、str[2
, 也就是都是起到获取相关下标具体元素值的作用 。

这里的str+1 , 是表示数组的起始位置往后偏移一个地址单位 。 因为这里是字符型(char) , 一个字符型变量占据一个字节 , 所以str+1之后的值 , 比str的值大1个字节 。

但是如果是int类型的变量 , 它占据4个字节 , 那么如果是往后偏移一个地址单位的话 , 就会比之前的地址编号大4个字节了 。

推荐阅读