指针的加法操作我们见过很多,但是减法操作遇到的好像很少。
有这么一个笔试题:
int a[] = {1, 2, 3};
int *p1 = &a[0];
int *p2 = &a[2];
printf("%ld
", p2 - p1);
一个数组,两个指针,指针p1指向数组第一个元素,指针p2指向数组第三个元素,问p2-p1的结果是多少?root@Turbo:test# ./test 2 root@Turbo:test#结果是2。
printf("%lu
", (int)p2 - (int)p1);
printf("%lu
", (char *)p2 - (char *)p1);
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !