• 小白对c语言指针的基础总结


    指针

    指针是指向一片内存空间的地址,指针变量是变量,是存放一片内存空间首地址的变量,我们一般所说的指针都是指针变量。

    指针的定义及赋值:

      类型说明 *变量名  列如 int *p; 

      区别 int *p=NULL 与 *p=NULL 

      

    int *p=NULL;    //定义指针变量p,并且同时将p的值设置为0x00000000,不是把*p的值设置为0x0000000,这个过程叫做初始化
    
    int *p;
    *p=NULL;    //定义指针变量p,将*p的值设置为NILL,即给p所指向的内存赋值NULL,但是p所指的内存可能是非法的,编译可能会显示内存访问错误,那么做出如下修改,给它一块合法的内存。
    
    int i=10;
    int *p=&i;
    *p=NULL;    //这时i中的值由10变成了0,而p值本身没变,即内存地址没有改变

    指针的大小

    int *P;
    sizeof(p);    //指针的大小根据计算机的位数确定,32位机大小为4个字节,64位机大小为8个字节。

    指针运算

      需要注意的是指针的类型,+1加的是一个指针类型的大小。

      

    int a[10];
    int *p=&a;    //+1,加了sizeof(int)*1个字节,而不是加sizeof(int[10])*1个字节

    指针的使用类型

      指针形式

      数组形式

      

    int a[10];
    int *P=a;
    p[0]=1;    //指针的数组形式        
    *(p+1)=2//指针的指针形式

    通过指针修改内容的汇编过程

      1.找到指针变量的地址

      2.通过指针变量的地址,找到内容的地址

      3.通过地址找到内容

      4.修改内容

  • 相关阅读:
    NS网络仿真,小白起步版,双节点之间的模拟仿真(基于UDP和CBR流)
    Linux学习,ACL权限管理
    SQL中的注释语句
    C#连接SQL Server数据库小贴士
    C#重写ToString
    C#控制台应用程序之选课系统
    浅谈C、C++及其区别、兼容与不兼容
    C++之客户消费积分管理系统
    A*算法
    HTML标签列表总览
  • 原文地址:https://www.cnblogs.com/kxsph/p/8654172.html
Copyright © 2020-2023  润新知