C语言指针数组指针怎样理解?
答案:3 悬赏:30
解决时间 2021-03-15 15:31
- 提问者网友:伴他一生,无悔
- 2021-03-15 04:46
C语言指针数组指针怎样理解?
最佳答案
- 二级知识专家网友:一场云烟
- 2021-03-15 05:09
1、指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针;数组指针:a pointer to an array,即指向数组的指针。
int* a[4] 指针数组
表示:数组a中的元素都为int型指针
元素表示:*a[i] *(a[i])是一样的,因为[]优先级高于*
int (*a)[4] 数组指针
表示:指向数组a的指针
元素表示:(*a)[i]
2、下面通过实例来说明数组指针与指针数组的区别:
#include
using namespace std;
int main()
{
int c[4]={1,2,3,4};
int *a[4]; // 指针数组
int (*b)[4]; // 数组指针
b=&c;
// 将数组c中元素赋给数组a
for(int i=0;i<4;i++)
{
a[i]=&c[i];
}
// 输出看下结果
cout<<*a[1]<
cout<<(*b)[2]<
return 0;
}
int* a[4] 指针数组
表示:数组a中的元素都为int型指针
元素表示:*a[i] *(a[i])是一样的,因为[]优先级高于*
int (*a)[4] 数组指针
表示:指向数组a的指针
元素表示:(*a)[i]
2、下面通过实例来说明数组指针与指针数组的区别:
#include
using namespace std;
int main()
{
int c[4]={1,2,3,4};
int *a[4]; // 指针数组
int (*b)[4]; // 数组指针
b=&c;
// 将数组c中元素赋给数组a
for(int i=0;i<4;i++)
{
a[i]=&c[i];
}
// 输出看下结果
cout<<*a[1]<
}
全部回答
- 1楼网友:无字情书
- 2021-03-15 07:45
在c语言中,当把数组名赋值给指针时,那么该指针指向数组的第一个元素,也就是该指针变量存放的是数组第一个元素的地址。所以
执行语句 int a[5]={1,3,5,7,9},*p=a;之后,
p指向a[0],
而上面for循环中p<a+5等价于p<=a+4表示只要指针指向的元素地址小于等于数组a中的a[4]的地址,就输出p指向的元素。
而p++表示使指针p指向a的下一个元素,
所以结果自然是依次输出a[0],a[1],a[2],a[3],a[4]的值,即13579了
- 2楼网友:绝望伪装
- 2021-03-15 06:08
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯