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

 

 

 

 

原文链接: https://www.cnblogs.com/netact/archive/2012/02/08/2337128.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    C++ 数据结构和指针

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/41168

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 下午6:03
下一篇 2023年2月8日 下午6:03

相关推荐