BIO-张磊 发表于 2020-6-6 10:04:25

C语言 索引

本帖最后由 BIO-张磊 于 2020-6-6 10:06 编辑

为什么str== *(str+20) == *(20+str) == str
前面我都能理解,*(20+str) == str是什么意思
还有课后作业说str 和 3 是相同的,这又什么意思
那么除了字符数组可以这么表示,整型数组也可以吗?

永恒的蓝色梦想 发表于 2020-6-6 10:10:11

这个……怎么就不能理解了呢?

CodingCat_k 发表于 2020-6-6 11:01:35

C语言里面arr与m的写法是等价的,都是表示数组a中的第m+1号元素,不过多数时间见到的是第一个;
*(a+m)与a也是同理;数组名a是首元素地址/数组起始地址;加上偏移量*步长就可访问这个数组的每个元素了
至于*(str+20)与*(20+str)写法不同而已
注意:str这种写法是错误的,编译不通过,只有str与20;*(str+20)/*(20+str)可行。
页: [1]
查看完整版本: C语言 索引