【发布时间】:2020-08-01 17:57:05
【问题描述】:
在 C18 中,我们有:
§ 6.5.9p10
两个指针比较相等当且仅当两者都是空指针,两者都是 指向同一对象的指针(包括指向对象和子对象的指针 在它的开头)或函数,两者都是指向最后一个元素的指针 同一个数组对象,或者一个是指向一个结束后一个的指针 数组对象,另一个是指向不同数组开头的指针 恰好紧跟在第一个数组对象之后的对象 地址空间。
所以对于int a[4][2] = {{1, 2}, {3, 4}, {5, 6}, {7, 8}},
我们可以有a[1] == a[0] + 2。
这可以保证*(a[1]) == *(a[0] + 2)吗?
【问题讨论】:
标签: c language-lawyer