David Asked:2020-01-19 22:59:33 +0000 UTC2020-01-19 22:59:33 +0000 UTC 2020-01-19 22:59:33 +0000 UTC 是否可以使用带指针的比较操作? 772 是否可以将比较操作应用于 C 中的指针?我认为是的,但我不明白为什么以及出于什么目的使用它。 c 1 个回答 Voted Best Answer AnT stands with Russia 2020-01-19T23:17:39Z2020-01-19T23:17:39Z 当然可以。 “为什么”这个问题并不完全清楚,因为比较操作应用于指针的目的与它们应用于任何其他类型的目的完全相同。例如,将指针值与值进行比较NULL是一种常见的日常做法。 从这里进一步: 您可以根据类型兼容性与任何指针比较相等/不等式,无论它们是否指向同一个数组。允许将指向数据的指针与指针进行比较void *。 该语言保证指针相等,如果 两者都是空指针 两者都是指向同一个对象或函数的指针。(包括指向对象的指针和指向该对象的第一个子对象的指针) 两者都是指向数组最后一个元素之后的同一个虚元素的指针。 一个是指向虚构数组元素(在最后一个元素之后)的指针,另一个是指向紧跟内存中第一个元素的下一个数组的第一个元素的指针 当然,比较中涉及的指针值的形成应该是在没有未定义行为的情况下完成的。 排序比较只能应用于指向同一数组元素的指针(包括数组最后一个元素之后的虚构元素)或同一类的字段。出于这些要求的目的,不是数组的对象被视为 size 的数组1。 否则,行为未定义。
当然可以。
“为什么”这个问题并不完全清楚,因为比较操作应用于指针的目的与它们应用于任何其他类型的目的完全相同。例如,将指针值与值进行比较
NULL是一种常见的日常做法。从这里进一步:
您可以根据类型兼容性与任何指针比较相等/不等式,无论它们是否指向同一个数组。允许将指向数据的指针与指针进行比较
void *。该语言保证指针相等,如果
当然,比较中涉及的指针值的形成应该是在没有未定义行为的情况下完成的。
排序比较只能应用于指向同一数组元素的指针(包括数组最后一个元素之后的虚构元素)或同一类的字段。出于这些要求的目的,不是数组的对象被视为 size 的数组
1。否则,行为未定义。