可能重複:
Why can’t I convert ‘char**’ to a ‘const char* const*’ in C?爲什麼把`char **`傳遞給一個在C中使用`const char **`的函數是不行的?
我很好奇,爲什麼我不能傳遞一個char **
到const char **
功能?因爲可以將char *
傳遞給const char *
函數,所以用雙指針來做它似乎並不好。我認爲添加常量總是可以的(但不能放棄常量),但現在看來我錯了。
gcc編譯是給我的errror:
note: expected ‘const char **’ but argument is of type ‘char **’
這裏是代碼片段:
int f(const char **a) { }
int main() {
char *a;
f(&a);
}
任何想法?
這看起來類似於http://stackoverflow.com/questions/78125/why-cant-i-convert-char-to-a-const-char-const-in-c – 2010-08-16 18:24:11
順便說一句,以投票結束的人:這不是http://stackoverflow.com/questions/78125/why-cant-i-convert-char-to-a-const-char-const-in-c的確切副本,因爲一個是關於'const char * const *'的。 (然而,有些答案是相關的。) – jamesdlin 2010-08-17 03:23:58