前几天看了下一个开源的c代码发现一个这样的指针:int *(*ksp)[] = NULL,果然c对指针用得行云流水。本来是对指针有写稍微了解的,但是看到这个指针之后发现自己已经一头雾水了,甚至不知道指针到底是什么东西了,网上查找也没有查到类似这样的指针。后来通过自己研究,有些许了解,所以我在这里总结一下我的理解,其实我是这样理解的:
int *(*ksp)[] = NULL;//其实我的理解这个二级数组指针
ksp = (int*(*)[])malloc(sizeof(int(*)[])*10);//这里我们为这样的二级数组指针分配10个空间,这里不知道对不对,感觉是对的
(*ksp)[100] = new int; //这里我们可以任意取来分配空间,这里感觉脱离了数组限制,就是说下标可以是任意的,是这个指针的精髓
*(*ksp)[100] = 200;//我们给我们刚分配的空间赋值