char **p在c语言中 是定义一个二维的指针数组的意思吗?

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在这里怎么理解?。
最新回答
全都是假的丶

2024-07-03 10:22:41

**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有兴趣的!

高手就不敢谈了。

如果对你有所帮助,请记得采纳最佳答案,谢谢!
ㄨ菲薄的青春

2024-07-03 02:07:52

char ** p是指向指针的指针,他不是二维数组,他的意思是定义了一个指针p,这个指针指向另一个指针(假设是p1),而p1则是指向一个字符型变量。如果要定义一个指针的二维char的数组,则是这样的:char *p[][],这表明你定义的是一个指针数组。建议多看看老谭的书就懂了
万能女神

2024-07-03 10:44:16

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;

看了会很糊涂仔细想想就好了
白裙红衣

2024-07-03 09:00:03

char *p表示 生成一个指向字符的变量指针p
char **p表示 生成一个指向字符的指针的指针变量p
小承诺≈′

2024-07-03 09:02:14

你的意思是你定义了一个字符串数组,然后比较字符串的大小,将字符串进行交换