• C语言之指针


    指针在C语言中是一种数据类型

    是无符号类型

    1.如何定义

    普通类型

    char x;
    int y;
    Student z;    // 结构体类型

    指针类型

    char* x;    // 也可以写成  char *x;
    int* y;
    Student* z;
    • 任何类型都可以带*,加上*后是新的类型,统称”指针类型“
    • *可以是任意多个——char******* x;

    2.指针类型赋值

    // 定义一个指针类型
    char* x;

     赋值:

    x=(char*)2;    //  普通类型赋值完整写法是  x=(char)2
    y=(int***)5;
    // 或者变量之间赋值
    y=x;

     3.指针类型的宽度

    指针类型的宽度永远是4字节,无论类型是什么,无论有几个*

     4.指针类型自加和自减(++ / --)

    • 不带*类型的变量,++或者--都是加1或者减1
    • 带*类型的变量,++或者--的数量是去掉一个*后变量的宽度

    举例:x,y,z三个指针类型,只有一个*进行自增操作:

      

     可以见到分别增加了char  short  int 字节宽度的数值

    增加*的数量:

      两个*  4个*  

     再增加*,去掉一个*的指针类型都是4字节,所以都是一样的。

    5.指针类型的加减运算(指针类型可以做加法和减法,但是不能做乘除运算)

    加减运算与上面的自加和自减运算类似:

    • 指针类型变量+n=指针类型变量+n*(去掉一个*后类型的宽度)
    • 减法同理

    举例:

    四个*是数值100+指针类型宽度4*加的数值5=100+20=120

    当只有一个*的时候:是数值100+char,short,int类型的宽度*5 =105,110,120

    6.指针类型的比较

    指针类型是通过无符号数进行比较的

       

  • 相关阅读:
    Ubuntu16.04搭建NetCore2.2运行环境
    Centos7安装Redis5.0.3
    Centos7常用命令
    logstash6.5.4同步mysql数据到elasticsearch 6.4.1
    Windows下安装Elasticsearch6.4.1和Head,IK分词器
    【selenium】-自动化测试的前提
    【软件测试基础】回顾总结
    【软件测试基础】其它测试分类
    【软件测试基础】文档测试
    【软件测试基础】兼容性测试
  • 原文地址:https://www.cnblogs.com/codexlx/p/13434466.html
Copyright © 2020-2023  润新知