*p=(int*)a是什么意思

如题所述

你好!!!
int (*p)[M]定义的数组指针,表示定义一个指针变量,此指针变量是指向一个含有M个元素的一维数组:举例:
int a[]=,(*p)[5];p=a;那么指针p就指向数组a的首地址,*(p+i)表示数组a中的值。
一个更常用的用法是:用二维数组的行地址给其赋值:
int a[3][2]=,(*p)[2];
p=a[0],p=a[1],p=a[2]表示把数组的每一行的首地址赋值给指针变量

注意一点:int (*p)[M] 中的M一定要和a[n][k]中的列数即k相等

int *p[M]表示声明指针数组p,其指向含有M个指针元素的首地址。举例:

int a[3][2]=,*p[4];
p[0]=a[0],p[1]=a[1],p[2]=a[2]
注意int *p[M] 中的M一定要和a[n][k]中的行数和列数即n和k没有任何关系!!!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-07
问问题不要断章取义。*p=(int *)a这个不是一个完整的语句,前面后面都可能省略内容。

float b=3.14,*a=&b;
int *p=(int *)a; //这个才是完整的,前面有int *,后面有分号。表示将指针a的类型转换为整型指针再赋给p。本回答被提问者采纳
第2个回答  2011-09-07
就是把a强制类型转换,变成指向整型的指针值,赋给指针p指向的地址。p应该是指向整型的指针。
比如a=0x33445566,p=0x12452345,执行完后,地址0x12452345指向的内存里的值应该是0x33445566。
第3个回答  2011-09-07
先告诉我p的定义
相似回答