指针类型的意义
1 、指针类型决定了指针进行解引用的时候,能够访问空间的大小
2 、指针类型决定了指针走一步走多远(指针的步长)
野指针
指针指向的位置不可知
随机的
不正确的
没有明确限制的
局部变量不初始化,默认是随机值
指针减去指针结果为指针之间元素的个数(要求指针指向同一片空间)
#include <stdio.h>
#include <stdlib.h>
int my_strlen(char *str)
{
char *start = str;
char *end = str;
while (*end != '\0')
{
end++;
}
return (end - start);
}
int main()
{
char arr[] = "koukou";
int len = my_strlen(arr);
printf("%d\n", len);
return 0;
}
数组与指针
数组名在大多数情况下为首元素地址
两个例外:
1 、&数组名:数组名不是首元素地址,数组名表示整个数组, &数组名 表示整个数组的地址
2 、sizeof(数组名): 数组名表示整个数组,计算的是整个数组的大小
int main()
{
char arr[] = "koukou";
printf("%p\n", arr);
printf("%p\n", arr+1);
printf("%p\n", &arr[0]);
printf("%p\n", &arr[0]+1);
printf("%p\n", &arr);
printf("%p\n", &arr+1);
}