比较 C 中的两个指针

问题描述 投票:0回答:1

如果某个指针变量大于另一个指针变量,我可以比较两个指针吗? 下面是一个简单的例子:

#include <stdio.h>


int main()
{
    int age;
    int allowedAge = 18;
    int* pointerAge = &age;
    int* pointerAllowed = &allowedAge;
    
    printf("How old are you?\n");
    scanf("%d", pointerAge);
    
        if(pointerAge < pointerAllowed)
        printf("You are only %d so you cannot drink any alcohol\n", *pointerAge);
        else
        printf("You are %d so you can drink\n", *pointerAge);
        
    return 0;
}
c pointers compare
1个回答
1
投票

如果某个指针变量大于另一个指针变量,我可以比较两个指针吗?

没有。比较伟大的指针是未定义的行为(UB),除非这些指针在同一个对象内,例如指向数组(或过去)中元素的指针。


然而给定 OP 的

printf()
,编码目标是not比较指针,而是比较它们指向的对象。

    // if(pointerAge < pointerAllowed)
    if (*pointerAge < *pointerAllowed)
© www.soinside.com 2019 - 2024. All rights reserved.