#include<stdio.h>
#include<stdlib.h>
void
main()
{
float
a[10],*p,*q
p=&a[4]
q=&a[7]
printf("p:
0x%0xd\n",
p)
printf("q:
0x%0xd\n",
q)
printf("p-q:
%d\n",
p-q)
printf("p+3-p:
%d\n",
p+3-p)
system("pause")
}
指针也是整数编号,也是可以进行运算的。计算机内存就好比是一个有编号的抽屉,每个小单元(字节)都有编号,从0开始到最大内存数。
程序需要访问哪个内存,就得告知计算机在哪个编号。
题中p一开始指向字符首地址,经过while后指向字符串末尾,相减就是字符串的长度。字符串是存在连续的内存空间,所以可以这么算长度。