Я смущен, почему это бросает ошибку warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘int *’
:предупреждение: формат «% d» ожидает аргумент типа «Int», но аргумент 2 имеет тип «Int *»
int x = 5;
int **y = &x;
printf("%d", y);
Хотя это работает?
int x = 5;
int *y = &x;
printf("%d", *y);
В вашем первом примере вы имеете в виду 'int * y', а не' int ** y'? – psmears
Неправильно; первый для того, что сказал @psmears, второй, потому что '% d' для целых чисел; 'int *' не является целым числом. Используйте '% p'. – Qix