首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于数组的有关问题,求解!

2012-03-03 
关于数组的问题,求解!!1、以下的定义和语句中,对w数组元素的非法引用是???intw[2][3],(*pw)[3]pwwA)*(w[

关于数组的问题,求解!!
1、以下的定义和语句中,对w数组元素的非法引用是     ???
int   w[2][3],(*pw)[3];   pw=w;

A)*(w[0]+2)B)*(pw+1)[2]
C)pw[0][0]D)*(pw[1]+2)

请大家解释一下(*pw)[3];   pw=w;是什么意思?晕~~~


2、以下程序段中,对数组元素的错误引用语句是???

int   a[12]={0},*p[3],**pp,i;
for(i=0;i <3;i++)
    p[i]=&a[i*4];
pp=p;

A)pp[0][1]B)a[10]
C)p[3][1]D)*(*(p+2)+2)

哪位高手解释一下选项D,谢~~~


[解决办法]
pw=w 把pw指向w的数组
[解决办法]
*(*(p+2)+2))就是a[2][2]
p是指向一个整型元素数组的指针,p+2就是指向数组a[2]的指针等同于&a[2],*(p+2)就是a[2](这是一个一维数组)首元素a[2][0]的指针,等同于&a[2][0]
*(p+2)+2就是&a[2][0]+2,是指向a[2]数组的第三个元素(下标为2),即为&a[2][2]。
[解决办法]
D应该没错吧
#include <iostream>
using namespace std;

void main()
{
int a[12]={0,1,2,3,4,5,6,7,8,9,10,11},*p[3],**pp,i;
for(i=0;i <3;i++)
p[i]=&a[i*4];
cout < <*(*(p+2)+2) < <endl;
system( "pause ");
}
*(p+2)表示p第三个单元内容,即i = 2,即8+2,*(*(p+2)+2)即表示 a[10],输出为10啊。

热点排行