• C++ 数据结构和指针


    一,数组:

    (a)  一维数组定义,初始化

                             int a[10]={6,4,3,2,6,7,3,4,6,2,3,4};

                  char c[]={'a','b','c','d'};  //对全部元素赋值时可以省略数组大小。

                             int a[10]={1,2,3}; //可以只对数组部分元素初始化。

    访问数组元素方式:a[9];   //注意数组越界。

    (b)  二维数组定义,及初始化:

               int a[2][3]={{1,2,3},{4,5,6}};//分行初始化

               int a[2][3]={1,2,3,4,5,6};//不分行初始化

             int a[2][3]={{1,2},{4}};        //对二维数组a部分元素初始化。

               int a[][3]={{1,2,3},{4,5,6}}; //省略第一维的数组长度

               int a[2][3]={1,2,3,4,5,6};//初始化全部数组元素。

               int a[2][3]={1,2,3};//初始化部分数组元素,

               int a[]{3]={1,2,3,4,5,6};//初始化全部元素

    当使用线性初值表省略第一维元素个数时,该值计算方法为:向上取整(线性初值表项数/第二维元素个数)例如:int  a[][3]={1,0,0,0}; 则第一维元素个数为「4/3」=2。

    访问二维数组元素:a[0][1];

    (c),指针:

      定义:用来存储指向内存数据单元地址的变量。数据类型 *变量名;

          int *i      ,    double * d1  ,  int *ip=&i;

        如果指针指向的是一种不确定的数据类型可以用void 进行定义。指针赋值时,数据类型要一致,不然就要进行强制转换。

        2,指针运算:"*"和"&“: * 称为指针运算符。它有2种含义。a,在定义指针变量时说明p是一个指针变量,当*出现在指针变量表达式左边时,表示访问指针所指向对象的内容。书写格式如下:*指针变量表达式。

      qint  *p,*q,a=5;

          p=&a;

          p++;  //指针p后移4个字节

          *p++;        //先读取p指向的变量a的值5,然后使指针后移4个字节

          (*p)++;     //读取p指向的变量a的值,然后使p指向的变量a自增1

         *++p;        //先使指针p后移4个字节,然后读取p指向的变量的值

         ++*p;          //将p指向的变量a自增1

          *q++=*p++ ;     //相当于*q=*p,q++,p++

    两指针相减: 当2个指针指向同一个数组时,2个指针相减才有意义。2个指针相减表示2个指针之间数组元素的个数,结果为一个整数。

     两个指针比较:比较2个指针所指向的队形在内存的位置关系。是否为空。

    Const指针:数据类型* const 指针变量=变量名 。

    指向一维数组的指针:int  (*pa)[2]; int a[3][2]={...}; pa=a[0];

     类型名 (*指针名)[常量表达式];

    字符指针和字符串

    通过指针访问字符串。字符数组名与字符指针名等效。char p[] ==char *p

  • 相关阅读:
    Repository 模式
    alert ALTER
    asp.net mvc source(2)ActionResult
    ??
    asp.net mvc source(1) MvcHandler
    shortkey
    sql 搜索 关键系 存储过程
    asp.net mvc source(3)Attribute
    输入错误: 没有文件扩展“.js”的脚本引擎。
    CI学习 header和footer
  • 原文地址:https://www.cnblogs.com/netact/p/2337128.html
Copyright © 2020-2023  润新知