zoukankan      html  css  js  c++  java
  • 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 二级指针: 

     

  • 相关阅读:
    线性回归问题
    聚类:层次聚类
    聚类:(K-means)算法
    神经网络算法
    AutoEventWireup解释
    asp.net中runat="server"的含义
    十步完全理解SQL
    sqlserver中分区函数 partition by的用法
    被忽略却很有用的html标签
    net中使用母版页
  • 原文地址:https://www.cnblogs.com/xiaoyoucai/p/8011323.html
Copyright © 2011-2022 走看看