Я изучаю указатель на C языке и у меня есть несколько вопросов.
#include <stdio.h>
int main()
{
char c = 'A';
char* pc = &c;
char** ppc = &pc;
printf("%p %p\n", pc, ppc);
printf("%p %p\n", pc + 1, ppc + 1);
printf("%p %p\n", &c, &c + 1);
printf("%p %p\n", &pc, &ppc);
printf("%p %p\n", &pc + 1, &ppc + 1);
return 0;
}
В этом коде допустим, что
&c = 0117FE7B
&pc = 0117FE6C
&ppc = 0117FE60
Я думал, что некоторые ответы будут вот так:
ppc + 1 = 0117FE6D
&pc + 1 = 0117FE6D
&ppc + 1 = 0117FE61
но правильный ответ был такой:
ppc + 1 = 0117FE70
&pc + 1 = 0117FE70
&ppc + 1 = 0117FE64
и я не понимаю почему. Может кто-нибудь объяснить это для меня? (Мой компьютер использует 64-битную windows ОС.)