char ** p ,在C语言中式什么意思?还有,要是想定义一个指针的二维char的数组,是不是用char**p就可以呢?另外,有没有C语言高手的群或者qq号码?if(strcmp(w[i],w[j])) swap(&&w[i],&w[j]);void swap(char**p, char**q){ /*换*p 和*q */}那个char **p在这里怎么理解?。
**p是二级指针的意思,也就是指针的指针。当然可以用char **p;去定义一个二维char数组。只不过要用到malloc动态申请内存来放二维字符数组。格式如下:#include "stdio.h"main(){ char **p; int i,j; int row,rank; //输入二维数组的行数和列数 printf("Please input row and rank:\n"); scanf("%d%d",&row,&rank); //以下为动态申请二维数组 p=(int **)malloc(row*sizeof(char)); for(i=0;i<row;i++) p[i]=(int *)malloc(rank*sizeof(char)); //输入二维字符数组字符 printf("Please input data:\n"); for(i=0;i<row;i++) for(j=0;j<rank;j++) scanf(" %c",&p[i][j]);//注意%c前有空格键,切不可丢失! //打印二维字符数组字符 for(i=0;i<row;i++) { for(j=0;j<rank;j++) printf("%c ",p[i][j]); printf("\n"); }}虽然我也是菜鸟,但比我还菜的问题,我是能回答出来的!QQ121590680,虽然我加过几个C群,但里面鱼龙混杂,没几个对C有兴趣的!高手就不敢谈了。如果对你有所帮助,请记得采纳最佳答案,谢谢!
char ** p是指向指针的指针,他不是二维数组,他的意思是定义了一个指针p,这个指针指向另一个指针(假设是p1),而p1则是指向一个字符型变量。如果要定义一个指针的二维char的数组,则是这样的:char *p[][],这表明你定义的是一个指针数组。建议多看看老谭的书就懂了
char *p是一个字符指针char **p 是一个指向字符指针的指针定义一个指针的二维char的数组是不是想表达:定义一个指向char型的二维数组的指针?指向一维char数组的指针 : char* p ; char a[10]; p = a;因为a在这里本身就是一个char*;指向二维char数组的指针:char a[num1][num2]; //这其实是一个包含有num1个元素的一数组,但是每个元素却是一个有num2个char元素的一维数组;a实际上是一个指向一个一维数组元素的指针;所以:char(*p)[num2]; //num2是指针p所指向的一维数组的元素的个数;p = a;看了会很糊涂仔细想想就好了