一、指针
1、指针类型决定了指针在被解引用的时候访问几个字节,如果是int*的指针,解引用访问四个字节,如果是char*指针,解引用访问1个字节,可以推广到其他类型
2、指针的类型决定了指针+1(或-1)跳过了几个字节,决定了指针的步长(指针变量本身是4个字节)。
如何避免野指针:
1、指针初始化
2、小心指针越界
3、指针指向空间释放及时放置NULL
4、避免返回局部变量的地址
5、指针使用前检测指针的有效性
指针运算:
指针—指针的绝对值得到的是指针和指针之间元素的个数
不是所有指针都能相减,指向同一块空间的才有意义
#include<stdio.h>
int my_strlen(char* str)
{
char* start = str;
while(*str != '\0')
{
str++;
}
return (str-start);
}
int main()
{
int len = my_strlen("abcdef");
printf("%d",len);
return 0;
}
二级指针:
存放一级指针地址的指针变量
指针数组:
二、结构体
结构是一些值的集合,这些值称为成员变量,结构的每个成员可以是不同类型的变量
结构体指针->成员变量
结构体变量.成员变量