zoukankan      html  css  js  c++  java
  • 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.指针类型的比较

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

       

  • 相关阅读:
    jekins安装
    Nginx启动、关闭命令
    win10启动docker desktop报错
    CSS设置背景图片
    Lucene 8.5.2核心API
    Lucene 8.5.2演示API
    html+css实现选项卡效果
    搞懂JavaScript全局变量与局部变量,看这篇文章就够了
    你不知道的CSS妙用,纯CSS实现炫酷照片墙
    JS中!function(){}()的理解
  • 原文地址:https://www.cnblogs.com/codexlx/p/13434466.html
Copyright © 2011-2022 走看看