C语言二维数组指针变量是什么,int (*p)[2]什么意思
大家对int(*p)[2]的解释都蛮透彻,谢谢了。只是想大家帮我比较一下int(*p)[2]与int*p[2]的具体区别,最好详细点加追加5分...
大家对int (*p)[2]的解释都蛮透彻,谢谢了。只是想大家帮我比较一下int (*p)[2]与int *p[2]的具体区别,最好详细点加追加5分
展开
展开全部
int (*p)[4]
定义了一个指针p,指向一个4个元素的数组。只是定义一个指针,
指向4个元素的数组
int *p[4]
定义了一个数组指针p[4],p的每个元素指向一个整型的数据。就
是数组里面保存的是指针
(1)int* p[2] 是一个指向int型的指针数组,即:p是包含两个元素的指针数组,指针指向的是int型。
可以这样来用:
#include <iostream.h>
void main() {
int* p[2];
int a[3] = {1, 2, 3};
int b[4] = {4, 5, 6, 7};
p[0] = a;
p[1] = b;
for(int i = 0; i < 3; i++) cout << *p[0] + i;// cout << **p + i;
cout << endl;
for(i = 0; i < 4; i++) cout << *p[1] + i;// cout << **p + i;
}
(2)对于 int (*p)[2], 它相当于一个二维数组的用法,只是它是一个n行2列的数组,可以这样来用:
#include <iostream.h>
void main() {
int (*p)[2];
int b[3][2] = {{1, 2}, {3, 4}, {5, 6}};
p = b;
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 2; j++) //cout << p[i][j]; //cout << *(*(p+i)+j);
cout << endl;
}
}
<回答者: lstno1bd>
定义了一个指针p,指向一个4个元素的数组。只是定义一个指针,
指向4个元素的数组
int *p[4]
定义了一个数组指针p[4],p的每个元素指向一个整型的数据。就
是数组里面保存的是指针
(1)int* p[2] 是一个指向int型的指针数组,即:p是包含两个元素的指针数组,指针指向的是int型。
可以这样来用:
#include <iostream.h>
void main() {
int* p[2];
int a[3] = {1, 2, 3};
int b[4] = {4, 5, 6, 7};
p[0] = a;
p[1] = b;
for(int i = 0; i < 3; i++) cout << *p[0] + i;// cout << **p + i;
cout << endl;
for(i = 0; i < 4; i++) cout << *p[1] + i;// cout << **p + i;
}
(2)对于 int (*p)[2], 它相当于一个二维数组的用法,只是它是一个n行2列的数组,可以这样来用:
#include <iostream.h>
void main() {
int (*p)[2];
int b[3][2] = {{1, 2}, {3, 4}, {5, 6}};
p = b;
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 2; j++) //cout << p[i][j]; //cout << *(*(p+i)+j);
cout << endl;
}
}
<回答者: lstno1bd>
展开全部
int *p[2]: 指针数组,首先它是一个数组,数组的元素都是指针(int *),数组占多少个字节由数组本身决定.它是"存储指针的数组"的简称;
int (*p)[2]: 数组指针.首先它是一个指针,指向一个数组,在32为系统下永远占4个字节,它是"指向数组的指针"的简称;
int (*p)[2]: 数组指针.首先它是一个指针,指向一个数组,在32为系统下永远占4个字节,它是"指向数组的指针"的简称;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
(1)int* p[2] 是一个指向int型的指针数组,即:p是包含两个元素的指针数组,指针指向的是int型。
可以这样来用:
#include <iostream.h>
void main() {
int* p[2];
int a[3] = {1, 2, 3};
int b[4] = {4, 5, 6, 7};
p[0] = a;
p[1] = b;
for(int i = 0; i < 3; i++) cout << *p[0] + i;// cout << **p + i;
cout << endl;
for(i = 0; i < 4; i++) cout << *p[1] + i;// cout << **p + i;
}
(2)对于 int (*p)[2], 它相当于一个二维数组的用法,只是它是一个n行2列的数组,可以这样来用:
#include <iostream.h>
void main() {
int (*p)[2];
int b[3][2] = {{1, 2}, {3, 4}, {5, 6}};
p = b;
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 2; j++) //cout << p[i][j]; //cout << *(*(p+i)+j);
cout << endl;
}
}
可以这样来用:
#include <iostream.h>
void main() {
int* p[2];
int a[3] = {1, 2, 3};
int b[4] = {4, 5, 6, 7};
p[0] = a;
p[1] = b;
for(int i = 0; i < 3; i++) cout << *p[0] + i;// cout << **p + i;
cout << endl;
for(i = 0; i < 4; i++) cout << *p[1] + i;// cout << **p + i;
}
(2)对于 int (*p)[2], 它相当于一个二维数组的用法,只是它是一个n行2列的数组,可以这样来用:
#include <iostream.h>
void main() {
int (*p)[2];
int b[3][2] = {{1, 2}, {3, 4}, {5, 6}};
p = b;
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 2; j++) //cout << p[i][j]; //cout << *(*(p+i)+j);
cout << endl;
}
}
追问
http://zhidao.baidu.com/question/329109002.html
你 的 回答我懂了,谢谢,很透,点击上面链接,回答任意数字,我给你25分吧,谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-10-11
展开全部
二维数组指针变量: 指向一个二维数组的的指针。
int (*p)[2]:一个含有两个 指向int 型数据 的指针元素的i数组.
int (*p)[2]:一个含有两个 指向int 型数据 的指针元素的i数组.
追问
大家对int (*p)[2]的解释都蛮透彻,谢谢了。只是想大家帮我比较一下int (*p)[2]与int *p[2]的具体区别,最好详细点加追加5分
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询