ЖАЛЬ, я неправильно понял мои результаты, * р и р отличаютсяC, массив указателей: int n [5], int * p [5], назначить p [i] = & n [i], почему * p совпадает с p?
Я пытаюсь сделать представление о массиве указателей.
Я написал
int n[5] = {1,2,3,4,5};
int *p[5];
for(i = 0; i < 5; i++){
p[i] = &n[i];
}
до сих пор так хорошо.
, и я понимаю, что
printf("%0x\n", *p);
дает мне адрес первого указателя в массиве.
, что меня беспокоит это р, только р, ни звездочки, ни скобки.
потому
printf("%0x\n", *p);
printf("%0x\n", p);
[дайте мне то же самое. Почему p также адрес первого указателя в массиве?] НЕПРАВИЛЬНО, ИЗБЕГАЙТЕ!
Что именно означает p, когда объявлен массив указателей, указанных выше?
Смежный вопрос
int main(int argc, char *argv[]){
for(int i = 0; i < argc; i++){
printf("%s\n",argv[i]); //why not *argv[i]??
}
}
так argv
объявлен как массив указателей, не должны давать argv[i]
адрес вместо строки, где он указывает? потому что перед ним нет звездочки.
Заранее спасибо.
Я не могу воспроизвести проблему. '* p' и' p' в моем случае разные. –
DAMN, вы правы, я ошибся! есть небольшая разница, и я пропустил это! – NubeToAdroit