Arrays 如何打印字符**

Arrays 如何打印字符**,arrays,c,Arrays,C,我有一个变量 char **data; 我试图打印变量的内容。我理解它是数组的数组。我该如何打印它 谢谢这是指向指针的指针不是数组数组 您需要使用**数据来获取值 data将给出data变量保存的内存地址 *data将给出其地址data所在指针的内存地址 **数据将为您提供实际值 假设你有一个变量,比如 char c = 'X'; char *cp = &c; //cp stores memory address of c char **cpp = &cp; //now c

我有一个变量

char **data;
我试图打印变量的内容。我理解它是数组的数组。我该如何打印它


谢谢

这是指向指针的
指针
不是数组数组

您需要使用
**数据
来获取值

  • data
    将给出
    data
    变量保存的内存地址
  • *data
    将给出其地址
    data
    所在指针的内存地址
  • **数据将为您提供实际值
假设你有一个变量,比如

char c = 'X';
char *cp = &c; //cp stores memory address of c
char **cpp = &cp; //now cpp is pointer which points to a existing pointer cp
要获取存储在指针指向的位置的值,我们需要
dereference
指针

printf("%c", *cp); //prints 'X' 
printf("%p", *cpp); //prints memory address of cp 
printf("%c", **cpp); //prints 'X' (double stars because address->address->value)

它不是数组的数组,而是指向指针的指针。指针=/=ArrayShere有很多方法可以做到这一点,具体取决于您想要什么。如果
data
是字符串的集合,可能您只需要
for(int i;…)printf(“%s\n”,data[i];)
,但是您需要知道如何正确设置循环的边界,并且您没有提供足够的信息。