• 8)指针


      1. 指针变量也是一种数据类型,占有内存空间,用来保存内存地址    对于32位,就是4个字节,要是64位,就是8个字节
      2.  *p操作内存
      3. 指针释放完,free(p)  要赋空, 否则p还存着之前的内存地址,就会变成野指针,最好是0或者NULL
      4. 指针变量和它指向的内存块是两个不同的概念
            1.     规则1:给p赋值p=0x1111,只会该改变变量指针的值,不会改变所指向的内容;
                1.                 p=p+1;或者 p++;

                 2.              规则2:给*p赋值*p=‘a’,不会改变指针变量的值,只会改变所指向的内存块

                 3.              规则3:=左边*p 表示给内存赋值,=右边*p便是取值,含义不同

                 

     在指针声明时,*号表示所声明的变量为指针

     在指针使用时,*号表示操作指针所指向的内存空间的值

    *p相当于用过地址(p变量的值)找到一块内存,然后操作内存

    指针就是一种变量类型,只不过,它存的时地址,而别的变量类型如int或者char就是存对应的char型和int型变量。

    指针易错点:

    1 操作内存块,要保证那块内存是可以修改的,就是  可读和可写
    2 指针是一种数据类型,指针步长(p++),取决于指针存的地址的类型,要是int,就是4,要是char就是1,要是double就是8或者等等。
    3 p++等价   p+sizeof(a)
    4 
    5 当我们不断给指针变量赋值时,就是不断该百年指针变量,但是注意,我们并没有改变存数据的那块内存,指针指向谁,就是把谁的地址给他
    6 
    7 不允许向NULL或者未知非法地址拷贝内存

     其他知识:

    1 通过指针可以给变量间接赋值
    2 通过指针,传给函数,用形参改变实参的值,(如果想通过函数改变实参的值,就得传实参类型的指针)
    3 间接赋值是指针存在的最大意义
    4 二级指针: 

     

  • 相关阅读:
    山丽防水墙客户端的卸载
    还原冰点密码清除
    STP学习总结
    NTFS权限设置时卡死
    SQL server 2000安装时“以前的某个程序安装已在安装计算机上创建挂起”
    Projecet客户端登陆无法通过验证
    Linux-nftables
    Linux-kernel-timeline
    blog编辑技巧
    Linux-swap
  • 原文地址:https://www.cnblogs.com/xiaoyoucai/p/8011323.html
Copyright © 2020-2023  润新知