7.4 指向数组元素的指针

声明与赋值

例:int a[10], *pa;

pa=&a[0]; 或 pa=a[p1] ;

通过指针引用数组元素,经过上述声明及赋值后:

*pa就是a[0],*(pa+1)就是a[1],... ,*(pa+i)就是a[i].

a[i], *(pa+i), *(a+i), pa[i]都是等效的。不能写 a++,不能给数组名赋值或者试图改变其值,因为a是数组首地址是常量。

例子:使用三种方法输出数组元素

使用数组名和下标

使用数组名指针运算

使用指针变量

int main()

{   int a[10];   int i;

   for(i=0; i<10; i++)

     cin>>a[i];

   cout<<endl;

   for(i=0; i<10; i++)

     cout<<a[i];}

int main()

{   int a[10];   int i;

   for(i=0; i<10; i++)

      cin>>a[i];

   cout<<endl;

   for(i=0; i<10; i++)

     cout<<*(a+i);}

int main()

{   int a[10];   int *p, i

   for(i=0; i<10; i++)

        cin>>a[i];

   cout<<endl;

   for(p=a; p<(a+10); p++)

        cout<<*p;}

7.5 指针数组

指针数组的元素是指针型,例如:point *pa[2];由pa[0] ,pa[1]两个指针组成。

#include <iostream>

using namespace std;

int main()

{

         int line1[]={1,0,0};      //声明数组,矩阵的第一行

         int line2[]={0,1,0};      //声明数组,矩阵的第二行

         int line3[]={0,0,1};      //声明数组,矩阵的第三行

         int *p_line[3];     //声明整型指针数组

         p_line[0]=line1; //初始化指针数组元素

         p_line[1]=line2;

         p_line[2]=line3;

         cout<<"Matrix test:"<<endl;         //输出单位矩阵

         for(int i=0;i<3;i++)     //对指针数组元素循环

         {

             for(int j=0;j<3;j++)      //对矩阵每一行循环

             {   cout<<p_line[i][j]<<" ";   }

             cout<<endl;

         }

}

  

#include <iostream>

using namespace std;

int main()

{

         int array2[2][3]={{11,12,13},{21,22,23}};     //声明二维int型数组

         for(int i=0;i<2;i++)

      {

             cout<<*(array2+i)<<endl;   //输出二维数组第i行的首地址

             for(int j=0;j<3;j++)

          {  cout<<*(*(array2+i)+j)<<" ";    }       //逐个输出二维数组第i行元素值

//写成 {  cout<<*array2[i][j]<<" ";  }比较好。

             cout<<endl;

         }

  

}//输出结果为:

0X0065FDE0

11,12,13

0X0065FDEC

21,22,23

C++——指针2-指向数组的指针和指针数组的更多相关文章

  1. 当this指针成为指向之类的基类指针时,也能形成多态

    this指针: 1)对象中没有函数,只有成员变量 2)对象调用函数,通过this指针告诉函数是哪个对象自己谁. #include<iostream> using namespace std ...

  2. [C++]指针和指向数组的指针[一维数组与指针]

     1.一维数组与指针      形如:int型 数组 a[10]                1)&a[0]  地址常量;地址类型:int *型   ; 存储数组a的首地址          ...

  3. const的理解、const指针、指向const的指针

    1.const 的理解 const 是C语言的一个关键字,需要注意的是,const 关键字是把变量变为一个只读的变量(也就是不可以作为左值),绝对不是将这个变量变为常量.也就是说经过const 修饰的 ...

  4. C和C指针小记(十八)-使用结构和指针-双向链表

    1.双链表 1.1 双向链表的声明 在一个双链表中,每个节点都包含两个指针--指向前一个节点的指针和指向后一个节点的指针. 声明 typedef struct NODE { struct NODE * ...

  5. 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象, const 指针和指向 const 对象的指针, const 对象的引用

    [源码下载] 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象,  const 指针和指向 const 对象的指针, con ...

  6. C语言数组指针(指向数组的指针)

    注意:数组指针的定义,与指针数组的区别 转载:http://c.biancheng.net/cpp/biancheng/view/162.html 指向多维数组元素的指针变量 ① 指向数组元素的指针变 ...

  7. C基础知识(3):指针--概念、数组中指针的递增/递减、指针数组&数组指针、指向指针的指针

    指针是一个变量,其值为另一个变量的地址. 所有指针的值的实际数据类型,不管是整型.浮点型.字符型,还是其他的数据类型,都是一样的,都是一个代表内存地址的长的十六进制数. 下面从4个代码例子分别讲述以下 ...

  8. C语言之数组,字符串,指针

    一. 数组的定义 1.  数组初始化 初始化方式 int a[3] = {10, 9, 6}; int a[3] = {10,9}; int a[] = {11, 7, 6}; int a[4] = ...

  9. C++二级指针第二种内存模型(二维数组)

    C++二级指针第二种内存模型(二维数组) 二维数组 二维数组本质上是以数组作为数组元素的数组,即“数组的数组”. 定义 类型说明符 数组名[常量表达式][常量表达式] 例如: float a[3][4 ...

  10. Swift中对C语言接口缓存的使用以及数组、字符串转为指针类型的方法

    由于Swift编程语言属于上层编程语言,而Swift中由于为了低层的高性能计算接口,所以往往需要C语言中的指针类型,由此,在Swift编程语言刚诞生的时候就有了UnsafePointer与Unsafe ...

随机推荐

  1. docker安装mysql/redis

    1.安装mysql容器 #搜索mysql镜像 docker search mysql #拉取mysql镜像 docker pull docker.io/mysql #创建mysql容器,MYSQL_R ...

  2. 原创: idea 的maven 方式配置 开发javaWeb(idea+tomcat +maven

    通过idea 编辑器来配置基于maven创建站点,在tomcat上配置 在采用idea 配置之前,首先要确保maven和 tomcat 正确运行. maven 配置链接 tomcat 配置链接 实际你 ...

  3. P5840 [COCI2015]Divljak

    // powered by c++11 // by Isaunoya #include <bits/stdc++.h> #define rep(i, x, y) for (register ...

  4. 【Java】Swing实现一个简单的计算器

    import javax.swing.*; import java.awt.*; /** * 计算器 * @author paul * 2019.11.25 21:43 * */ public cla ...

  5. 金融计算的开源库——QuantLib 学习入门

    本文在Creative Commons协议下发布. 简介 瞬息万变的金融市场开发出了太多的金融产品,产生了太多的计算问题,这对于 Fintech 来讲:无论是计算能力上的,还是软件设计上的是一个巨大的 ...

  6. 面向对象编程(什么是对象)——java

    一.什么是面向对象,什么是面向过 二.引入对象和类的概念 对象:是具体事物 如:小明 汽车 类: 是对对象的抽象(抽象 抽出象的部分) Person 先有具体的对象,然后抽象各个对象之间的部分,归纳出 ...

  7. js Dom为页面中的元素绑定键盘或鼠标事件

    html鼠标事件 onload 页面加载 onclick 鼠标单击 onmouseover 鼠标移入 onmouseout 鼠标移出 onfocus 获取焦点 onblur 失去焦点 onchange ...

  8. Ubuntu禁用root账号,开启Ubuntu密钥登录

    新建普通用户 ## 新建普通用户 $ adduser ubuntu $ apt-get install sudo ## 将用户加入sudo组 $ usermod -a -G sudo ubuntu 为 ...

  9. sc 与 net 命令

    查看命令的帮助: help sc 或者 help net net: net start mysql  打开服务 net stop mysql 关闭服务 net pause mysql 暂停服务 sc ...

  10. 用sort实现对struct的排序

    用sort 排序 struct +++ //method 1 struct node{ int k,s; }p[5005]; bool cmp1(node x,node y){ return x.s& ...