char *p = "some string"
создает указатель p, указывающий на блок, содержащий строку.
char p[] = "some string"
создает массив символов и с литералами в нем.
И первый из них является объявлением константы. Это же относится к двумерным массивам?
какая разница между
char **p,char *p[],char p[][].
Я немного читал об этом, что char ** p создает массив указателей, поэтому он имеет накладные расходы по сравнению с char p[][]
для хранения значений указателя.
первые два объявления создают константу arrays.i, не получая ошибки во время выполнения, когда я пытался изменить содержимое argv
в main(int argc,char **argv)
. Это потому, что они объявлены в прототипе функции?