我们知道了指针加减整数偏移的字节数是由指针的类型所决定的,即int类型的指针+1就向右偏移1个int类型的变量,float类型的指针-1就向左偏移一个float类型的变量。
那指针减指针得到的又会是什么?
你想啊指针加减偏移的元素个数得到的是另偏移后指针,那指针减指针得到的必然是偏移的元素个数呀(即:两指针中间元素的个数)。
值得注意:只有在指针指向的变量类型相同且连续存放的情况下,指针减指针才有意义。
#include<stdio.h>
int my_strlen(char arr[])
{
char* p = arr;
while (*p != '\0')
{
p++;
}
printf("%p\n", p);
printf("%p\n", arr);
return p - arr;
}
int main()
{
char arr[] = "abcd";
int len=my_strlen(arr);
printf("%d", len);
return 0;
}
输出: