如果某个指针变量大于另一个指针变量,我可以比较两个指针吗? 下面是一个简单的例子:
#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;
}
如果某个指针变量大于另一个指针变量,我可以比较两个指针吗?
没有。比较伟大的指针是未定义的行为(UB),除非这些指针在同一个对象内,例如指向数组(或过去)中元素的指针。
然而给定 OP 的
printf()
,编码目标是not比较指针,而是比较它们指向的对象。
// if(pointerAge < pointerAllowed)
if (*pointerAge < *pointerAllowed)