/*
指针运算
1.指针-指针
指针-指针得到的是指针与指针之间元素的个数
注意:不是所有的指针都能相减
指向同一块空间的2个指针才能相减
2.指针的关系运算
比较指针(地址)大小,常用在while语句的判断中
允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较
但是不允许与指向数组第一个元素之前的那个内存位置的指针进行比较
*/
int my_strlen(char arr[]) { //参数是数组,实际传入的是指针
//方式二:使用指针访问元素,判断字符串结束标志'\0'
//int count = 0;
//while (*arr != '\0') {
// arr++;
// count++;
//}
//return count;
//方式三://使用指针运算之指针-指针
char* start = arr;
while (*arr != '\0') {
arr++;
}
return arr - start;
}
#include <stdio.h>
#include <string.h>
#define SIZE 10
int main() {
char str[] = "hello";
//计算字符串长度
//方式一:直接使用库函数
//int len = strlen(str);
int len = my_strlen(str);//自己实现计算字符串长度的函数
printf("%d\n",len);
int num[SIZE];
int* p;
for (p = &num[SIZE]; p > num;) { //允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较
*--p = 6;
}
//for (p = &num[SIZE]; p >= num;p--) { //但是不允许与指向数组第一个元素之前的那个内存位置的指针进行比较
// *p = 6;
//}
int i = 0;
for (i = 0; i < SIZE; i++) {
printf("%d ", num[i]);
}
return 0;
}
07-16
1187
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)