我正在阅读Pointer Arithmetic中的一些内容,我遇到了两件我无法理解的事情,也不知道它的用途
address_expression - address_expression
Run Code Online (Sandbox Code Playgroud)
并且
address_expression > address_expression
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释一下,它们是如何工作的以及何时使用它们.
编辑:
我想说的是,如果我只取两个地址并减去它们,它们会产生什么
如果我拿两个地址并比较它们的结果或基于的比较
编辑:我现在明白了减去地址的结果,但比较地址我仍然没有得到它.
我理解1 <2,但是地址如何比另一个更大,他们在比较什么
为什么两个地址之间的区别是错误的? http://codepad.org/NGDqFWjJ
#include<stdio.h>
int main()
{
int i = 10, j = 20;
int *p = &i;
int *q = &j;
int c = p - q;
printf("%d\n", p);
printf("%d\n", q);
printf("%d", c);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
-1083846364
-1083846368
1
Run Code Online (Sandbox Code Playgroud)