最近在寫程式時,發現當我把一個 char ** 型態的變數,傳到一個 const char ** 型態的參數時,出現了以下的警告: passing 'char *[257]' to parameter of type 'const char **' discards qualifiers in nested pointer types將 char * 型態轉換為 const char * 是安全的,那為何會這樣呢? 那是因為 char ** 會含有 char * ,因此有可能可以透過其他 char * 去修改 const char * 中的值 以下是一個簡單的範例: const char *bin = "/bin/sh"; char *argv[