c语言*p++和(*p)++的区别中int(*p)()中p的意思?


选择擅长的领域继续答题?
{@each tagList as item}
${item.tagName}
{@/each}
手机回答更方便,互动更有趣,下载APP
提交成功是否继续回答问题?
手机回答更方便,互动更有趣,下载APP
展开全部int*p[4],就是p本质上是个数组,只不过数组中的每个元素都是指针int(*p)[4],就是p本质上是个指针,指针指向一个一维的数组这种题的话,其实可以先根据运算符的优先级、结合性,先确定标识符本质上是一个什么,然后再去补充例如,int*p[3],先根据优先级,等效于*(p[3]),所以p本质上是一个有三个元素的数组;那么数组的每个元素又是什么呢?是一个指针;那指针指向的又是什么呢?是指向一个int型的数据;所以整理一下就是p是一个有三个指向int数据的指针的数组,本质上就是一个数组已赞过已踩过你对这个回答的评价是?评论
收起
展开全部这个不太好理解啊!第一个intc[4][5]是二维数组,可以理解为有4个元素的数组,其中每个元素又是5个整数的数组.第二个int(*p)[5]是数组指针,p是一个指针,它指向的是int[5],即5个整型,这时p++是增加20个偏移.与int*p[5]不同;p=c就是数组指针p指向&c[0],当p=c时p[0]就是c[0],p[1]就是c[1];p[1][0]就是c[1][0];上面的定义可用如下替换:typedefintMyType[5];//定义一个新的类型,大小为5个整数.MyTypec[4];MyType*p;p=c;这样就好理解啦.C中指针与数组关系较复杂,但只要把a[5],b[4][5],c[3][4][5],*p1,*p1[5],*p2[4][5],(*p3)[5]等搞懂就差不多了.^_^展开全部intc[4][5]是整数型二维数组(*p)[5];是整数型指针数组p=c就是指向a[4][5]的首地址a[0][0];p[0]中指针,只能指向地址。例p[0]=a[0];p[1]=a[1];*p就是P指向的值。
收起
更多回答(1)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
为你推荐:
下载百度知道APP,抢鲜体验使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。扫描二维码下载
×个人、企业类侵权投诉
违法有害信息,请在下方选择后提交
类别色情低俗
涉嫌违法犯罪
时政信息不实
垃圾广告
低质灌水
我们会通过消息、邮箱等方式尽快将举报结果通知您。说明
做任务开宝箱累计完成0
个任务
10任务
50任务
100任务
200任务
任务列表加载中...
int *p表示的是一级指针,表示p所指向的地址里面存放的是一个int类型的值。int **p表示的是二级指针,表示p所指向的地址里面存放的是一个指向int类型的指针。一级指针存放变量的地址,指向的值是变量的内容。如int* p={1,2,3}, p=数组的首地址,*p=数组的第一个值;二级指针存放一级指针的地址,指向一级指针。如int*p ={1,2,3}, int**pp=&p,pp=指针p的首地址,*pp=数组的首地址,**pp=数组第一个值1。指针数组的数组名传递参数对应为指针的指针即二级指针,二维数组的数组名传递参数对应为数组指针即指向一维数组的指针一级指针通过形参,可以修改实参中指针所指向的地址中的值。修改不了实参中指针所指向的地址。需要借助二级指针才可以。

我要回帖

更多关于 int*p=&a和*p=a 的文章

 

随机推荐