int qq是整型变量。
那么 p=q本身就是不对的。
p=&q一样不对。
都是类型不匹配。 p二级指针, &q一级指针。 q整型变量。 这三个类型都不一样。
正确做法是
int **p, *p1, q
p1=&q
p=&p1
这样类型才是对的。
#include <malloc.h>#include <stdio.h>
#include <stdlib.h>
int main()
{
char **p, i
p = (char **) malloc(sizeof(char *) * 50)
for (i = 0 i < 50 i ++)
p[i] = (char *) malloc(sizeof(char) * 50)
for (i = 0 i < 50 i ++)
sprintf(p[i], "This is string %d.", i)
for (i = 0 i < 50 i ++)
{
printf("%s\n", p[i])
getch()
}
return 0
}
可以看出这里 p 是一个二维数组。
这就是二维数组的原理。
int **p 就是 int * (*p)显然,*p是一个指针,编译器也得给它安排4字节的内存来存储它的值,int **p就是指向这块内存的指针,它的字面值就是这块内存的首地址