kwrl.net
当前位置:首页 >> C语言中(*p)和*(*P)的含义是什么? >>

C语言中(*p)和*(*P)的含义是什么?

你的疑问恐怕是出在二维数组里吧 例如:int a[3][5],*p; p=a; 上面的第一行表示定义一个指针变量p,下面一行表示p指向数组a的首行 a+1表示下一行首地址 *p等价于*(p+0)等价于p[0] 表示p[0]行首地址 p[0]+1表示p[0][1]的地址 p[0]+2表示p[0][2]...

(*p)++ : 表示指针p所指的存储空间的值自加一次。 *p++ : 由于++的优先级高于*,所以先执行++,相当于*(p++); 例: 如有定义: int a[5]={10,20,30,40,50};int *p=a,b;如写成:b=*p++; 则b的值为10,p自加一次由a[0]的地址指向a[1]的地址(就是...

举例说明,#includeint main(){int i;int b[5]={1,3,5,7,9};int (*a)[5] = &b;int *m = a; //a范围内的空间按照 int大小来取值 for(i = 0;i

**p :二级指针,表示p所指向的地址里面存放的是一个指向类型的指针。 *p:一级指针,表示p所指向的地址里面存放的是一个类型的值。 扩展资料: 指针变量可以进行加减运算,例如p++、p+i、p-=i。指针变量的加减运算并不是简单的加上或减去一个整...

我看书中解释:*p++:是先取出*p的值,再使p加1 //p是个指针,给p加1,相当于让p指向了x所在地址的下一个位置,而对于x则是没有任何影响 (*p)++:是使*p的值加1. //*p则是p指向的位置对应的值,题目中是*q,所以此时的*q就是x的值,为3,当输出*q...

(*p)[3]是说p指向一个二维数组,数组列数为3列,行数不定,比如int a[5][3]; p=a;所以p是一个二维数组指针。 而*p[3]呢是一个指针数组,即p[0],p[1],p[2]分别都是一个指针,如int *p[3]; int a[3],b[3],c[3]; p[0]=a;p[1]=b;p[2]=c; 这样可以理解么

int *(*p)()——声明p是指向函数的指针,被指向的函数没有形式参数,返回一个int *型指针。

首先来说一下*和&,为了便于理解你可以认为,这里*是取内容,&是取地址。 我不讨论它们的区别,因为*p=&a这个形式一般是错的,常用的是p=&a。 下面比较*p=a和p=&a。看图,图很详细。 显然它们是等价的。 然后比较*p=&a和p=&a; 则这两种都是对指...

p* 如是出现在算术表达式中,这个星号就是乘号,表示相乘,如果是出现在声明中(如变量定义),那就表明p是一种数据类型,p*表示要声明这种类型的指针变量。 *p 依然可以表示相乘的运算,也可表示提取p指针指向的位置保存的值。例如: int a=9; ...

*p=*p+10; 表示对p地址中的数据进行累加了10。如: int a=5; int *p; p=&a ; //p指向a所在的地址 *p=*p+10 ; //这里就相当于a=a+10=15,最终结果a的值是15

网站首页 | 网站地图
All rights reserved Powered by www.kwrl.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com