三个关系量
(本条路线统一用 gcc -std=c11 -O0 编译)三个数都是"关系",跟这台机器上 int 有几个字节无关:
#include <stdio.h>
int main(void) {
int a[5] = {10, 20, 30, 40, 50};
int *p = a; /* 数组名当指针用,就是 &a[0] */
int *q = &a[3];
/* 三个都是关系量,跟这台机器上 int 有几个字节无关 */
printf("%ld/%d/%d\n", (long)(q - p), *(p + 3), p == &a[0]);
return 0;
}
全部评论