#include<stdio.h>
int main()
{
char str[25] = "Hello World";
printf("%s\n", &str+2);
printf("%p\n",&str);
printf("%p\n",&str+2);
return 0;
}
Программа выше мигает ошибка на линии 6 поговорке:разница между полукокса * и полукокса (*) [25]
warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[25]’ [-Wformat=]
Интересно, что разница между этими двумя. На выходе всегда отображаются два адреса с разницей в 32 байта. Я ожидал выход с разницей в 2, поскольку я пытаюсь напечатать адрес str
и адрес str
+2. Вы можете объяснить?
удалить '&' ..... –
да! Небольшой поиск сказал мне об этом. Но в чем ошибка в программе? –
Некоторая информация: http://stackoverflow.com/questions/15177420/what-does-sizeofarray-return/15177499#15177499 –