指针基础1


一、指针知识

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


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



猜你喜欢

转载自blog.csdn.net/f__yuan/article/details/81039612