2015 10 30 指针

来源:互联网 发布:51单片机串口 编辑:程序博客网 时间:2024/06/02 02:31
1、内存中的最小存储单元叫字节,为了方便我们操作内存中的数据,生产商对每一个内存中的存储单元进行编号,这个编号叫做地址,地址其实就是指针,指针其实就是地址;
2、 // &   取地址符号//&a  取到a的地址,并返回//  %p是地址的占位                                                                    printf("%p\n",&a);//a空间内存的首地址.
3、 /指针变量定义的格式
    //类型修饰符  *指针变量名 = 初始值;//在定义指针变量的时候*就是一个指针的标示符,告诉编译器这是和指针变量
    int *p = NULL;//最小的地址单位0x0
    printf("%p\n",p);
    //取出变量b的地址赋值给指针变量p
    p = &b;
    printf("p地址 = %p   b地址 = %p\n",p,&b);
4、指针常见的问题
    //内存编号比较小的内存单元是有系统控制的,不允许访问
//    int *p = NULL;
//    *p = 10;    error!!!
定义指针的时候一定要赋初始值,如果不赋初始值,这个指针就是野指针,操纵野指针是很危险的;
//    int *p
//    *p = 100;
  int *p3 = NULL;//苹果写法推荐写法;因为苹果公司就是这么写的;
5、 //p + 1  ++ p  p ++  的关系
   
 //相同:取到的都不是下一个空间的首地址
    //不同:p + 1没有造成指针的重指向,++p  和 p++  造成了指针的重指向

0 0