关于C标准的另一个问题.我已经测试了这个并且我总是变得NULL < ptr真实,ptr任何指针都不同于哪里NULL.但我知道标准说指针算术和比较仅在数组的边界内定义.我只是不确定特定的比较NULL < ptr是否合法.
编辑:我一直在阅读K&R,我发现以下引用:
任何指针都可以有意义地与零相等或不等式进行比较.但是对于算术或与不指向同一数组成员的指针进行比较的行为是未定义的.
我不确定这是否会影响已经提出这个问题的答案.在任何情况下,我仍然不确定是否p > NULL总是保证返回true,p指针在哪里!=NULL.
NULL < ptr无效:无法对空指针进行关系比较.这样做会产生未定义的行为.
你是正确的,你只能比较指向同一个对象的指针(无论是数组中的元素还是聚合的子对象).由于空指针不指向任何对象,因此无法将其与任何对象进行关联比较.
| 归档时间: |
|
| 查看次数: |
167 次 |
| 最近记录: |