c - *arr[] 和 **arr 的区别

标签 c

是一样的

char* s1[size];

char** s2 = malloc(size * sizeof(char*));

它们有什么区别吗?

最佳答案

理论上,*arr[]**arr是不同的。例如:

char *arr[size]; //case 1

这里 arr 是一个大小为 size 的数组,其元素的类型为 char*

鉴于,

char **arr; //case2

这里的 arr 本身就是一个指向 char* 类型的指针

Note: In case 1 array arr degrades to a pointer to become the type char** but it's not possible the other way around i.e, pointer in case 2 cannot become an array.

关于c - *arr[] 和 **arr 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37932739/

相关文章:

c - 在 select 上设置 max fd 有多重要?

c++ - Pthread读写锁问题

c - PIC C - 通过 USB 发送 200 个值,但它只发送其中的 25 个左右

c - 如何使用c中的库函数验证包含十六进制浮点常量的字符串

c - Yacc 如何扩展这条规则呢?

c - putchar ('\\' ) 返回单个 '\' - 在 Windows 上使用 mingw

C++ 第 3 方库包含不存在的头文件?

c - 在 C11 中,如何在编译时在带有浮点参数的函数与浮点指针之间进行选择

c - 时间(空);与时间(&something);

c++ - 有没有一种将变量名转换为双指针的简便方法?