0

我的问题是

void function (const char **params)     
{
    const char *para;       
    para = &params[0]; //1
    para = params;     //2
    para = *&params;   //3 
}

所有 3 个选项都将由 Netbeans gdb 编译,但 gcc 表示来自不兼容的指针类型的赋值。

为什么会有这种差异....得到了 gcc 4.6.1,我可以在 gcc 中做什么来用 *para 指向 **params 的值

4

1 回答 1

3

在所有三种情况下,右侧的类型都是const char **,不能在没有强制转换的情况下将其分配给 a const char *

如果您将警告级别提高到足够高,所有编译器都应该警告您。

不清楚你想做什么;如果您想指向第一个子数组的开头,那么这将起作用:

para = params[0];
于 2012-07-16T18:28:07.700 回答