C++——指针2-指向数组的指针和指针数组

本文详细介绍了C语言中指向数组元素的指针的声明、赋值、引用方法,以及如何使用指针数组进行操作。通过实例展示了三种输出数组元素的方法,并介绍了指针数组的定义和初始化。文章旨在帮助读者掌握C语言中指针与数组结合使用的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

转载于:https://www.cnblogs.com/lemaden/p/10237984.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值