1、指针关系运算
比较两个指针(地址)的大小
2、指针加减整数运算
根据指针的类型,判断指针加减整数的步长。
3、指针-指针的运算
指针减去指针得到的是两个指针之间相差的元素个数!
指针和指针相减的前提是两个指针指向同一块空间
举几个例子
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int* p = arr;
int* pend = arr+9;
while (p <= pend)//指针的关系运算
{
printf("%d\n",*p);
p++;//指针加减整数的运算
}
return 0;
}
指针-指针解决my_strlen()
因为指针-指针得到的是两个地址之间相差的元素个数,所以只需要‘\0’的地址减去首元素的地址就可以得到字符串的元素个数。
int my_strlen(char* str)
{
char* start = str;
while (*str!='\0')
{
str++;
}
return str - start;
}
int main()
{
int len = my_strlen("acd");//字符串在传参时,就是传首元素的地址
printf("%d\n", len);
return 0;
}