一、指针知识
1、&a获取a的地址;
2、int*p=&a p为整形地址变量;
3、*p 解引用(间接访问符) 一个函数要想修改另一个函数的数据,必须传指针和解引用;
int main()
{
int a=10;
int*p=&a;
*p=200;
printf("%d",a);
return 0;
}
![](https://i-blog.csdnimg.cn/blog_migrate/417672cd3a48393b516df1ced4db02aa.png)
4、野指针:没有指向有效(能访问)的地址;
5、NULL:空指针,表示当前指针为无效指针;
6、数组指针++是加一个单元格
指针+数字:指针加法需要调整,调整的权重为指针本身去掉一个*号,求sizeof
举例:int *p; p+2的值加上2*sizeof(int)个字节
int main()
{
int *p = (int *)1000;
printf("%d\n",p+2);//1008
printf("%d\n",(char ***)p+2);//1008
printf("%d\n",(short *)p+2);//1004
printf("%d\n",(double **)p+2);//1008
printf("%d\n",(unsigned long *)p+2);//1008
printf("%d\n",(char *)p+2);//1002
printf("%d\n",(unsigned long long)p+2);//1002 ****
return 0;
}