数组指针与指针数组

int (*a)[3]

数组指针,指向一个含有3个整型变量的数组

int *a[3]

指针数组,存储指针的数组,最多只能存储3个指针

实例

#include<iostream>

using namespace std;

void main()
{
	int a[3][4];
	int (*b)[4];         //定义一个数组指针,可以指向一个含有4个整型变量的数组
	int *c[4];           //定义一个指针数组,存储指针的数组,最多只能存储4个指针
	int *p;
	p=a[0];              //让p指向数组a的第0行的行地址
	b=a;                //让b指向数组a
	cout<<"利用连续内存的特点,使用int指针将二维int数组初始话"<<endl;
	for(int i=0;i<12;i++)
	{
		*(p+i)=i+1;      //给第i行首元素赋值
		cout<<a[i/4][i%4]<<" ";
		if((i+1)%4==0)      //每4列换行
			cout<<endl;
	}
	cout<<"使用指向数组的指针,二维数组的值改变"<<endl;
	for(int i=0;i<3;i++)
	{
		for(int j=0;j<4;j++)
		{
			*(*(b+i)+j)+=10;      //通过数组修改二维数组内容
		}
	}
	cout<<"使用指针数组,再次输出二维数组"<<endl;
	for(int i=0;i<3;i++)
	{
		for(int j=0;j<4;j++)
		{
			c[j]=&a[i][j];       //用指针数组里面的指针指向a[i][j]
			cout<<*(c[j])<<" ";
			if((j+1)%4==0)       //每4列换一行
				cout<<endl;
		}
	}
}

实验结果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值