int (*p)[10]
整形 指针 10个元素
意思就是一个指针,可以指向包含10个整形元素的东西~
int main(void)
{
int a[5][10]={1};//5行10列的数组(也就是5个 《包含10个整形元素》 的数组)
int (*p)[10];//可以指向包含10个整形元素的指针(他的基类型是sizeof(int)*10)
p=a;
printf("%d",p[0][0]);
return 0;
}
*p还有一种用法,就是当*是取值运算符的时候,*p是一个左值,表示一个变量,为什么*p是一个变量呢?也许有人会说,因为int i, *p=&i嘛,其实这是结果不是原因。严格来说,i只是一个变量名,不是变量,在编译器的符号表里面,变量名是一个符号地址,它所代表的地址值是它指向的那段内存单元的地址,真正叫变量的是那段内存单元,懂汇编的朋友能很容易地区分出来,在汇编里面,可以这样定义一个变量名: