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; }