c语言中,指针数组和行指针的区别是什么?
答案:2 悬赏:30 手机版
解决时间 2021-04-06 07:57
- 提问者网友:浮克旳回音
- 2021-04-05 13:09
c语言中,指针数组和行指针的区别是什么?
最佳答案
- 五星知识达人网友:第四晚心情
- 2021-04-05 13:23
int(*p)[4],这个就是行指针
这种类型的指针p是指向一个一维数组,这个一维数组包含4个整形元素
但是int a[4];p=a;这种方式却是不对的
因为p只能指向一个整型的一维数组,不能指向一个整型数据,a所指向的正是a[0],是个整型数;
实际上int(*p)[4]这种类型的指针是用于多维数组中的,比如定义一个二维数组int b[3][4],就可以这样赋值p=&b[0],使p指向一维数组b[0],而且p的增减是以一维数组的长度为单位的,比如p+1指向的就是b[1]了
int *p[4]这个是指针数组了,首先弄明白这个是数组,里面存放的是指针也就是地址,这个地址所指向的是一个整型数据,你可以把p[0],p[1]....当作一个个的指针变量来使用
我学的时候也弄了半天才搞明白,这是我总结的,你多看看指针那关于多维数组与指针的一节,做些练习自己验证几次就容易弄明白了
这种类型的指针p是指向一个一维数组,这个一维数组包含4个整形元素
但是int a[4];p=a;这种方式却是不对的
因为p只能指向一个整型的一维数组,不能指向一个整型数据,a所指向的正是a[0],是个整型数;
实际上int(*p)[4]这种类型的指针是用于多维数组中的,比如定义一个二维数组int b[3][4],就可以这样赋值p=&b[0],使p指向一维数组b[0],而且p的增减是以一维数组的长度为单位的,比如p+1指向的就是b[1]了
int *p[4]这个是指针数组了,首先弄明白这个是数组,里面存放的是指针也就是地址,这个地址所指向的是一个整型数据,你可以把p[0],p[1]....当作一个个的指针变量来使用
我学的时候也弄了半天才搞明白,这是我总结的,你多看看指针那关于多维数组与指针的一节,做些练习自己验证几次就容易弄明白了
全部回答
- 1楼网友:酒安江南
- 2021-04-05 14:13
简单的说就是一个是指向数组的指针,一个是数组成员是一族指针
具体哪个是哪个我也时常分不清楚。但用起来就知道了
具体哪个是哪个我也时常分不清楚。但用起来就知道了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯