Не компилируется программа - C (СИ) (75689)
Формулировка задачи:
#include <stdio.h> #define PR(X) printf("X =%u,*X=%d,&X=%u\n",X,*X,&X) int main(void) { static int urn[]={100, 200, 300}; /*unsigned*/ int *ptr1, *ptr2; ptr1 = urn; ptr2 = &urn[2]; /*unsigned int PR;*/ PR(ptr1); ptr1++; PR(ptr1); PR(ptr2); ++ptr2; PR(ptr2); printf("ptr2 - ptr1 = %u\n", ptr2 - ptr1); }
pointers.c: In function ‘main’:
pointers.c:10: warning: format ‘%u’ expects type ‘unsigned int’, but argument 2 has type ‘int *’
pointers.c:10: warning: format ‘%u’ expects type ‘unsigned int’, but argument 4 has type ‘int **’
pointers.c:12: warning: format ‘%u’ expects type ‘unsigned int’, but argument 2 has type ‘int *’
pointers.c:12: warning: format ‘%u’ expects type ‘unsigned int’, but argument 4 has type ‘int **’
pointers.c:13: warning: format ‘%u’ expects type ‘unsigned int’, but argument 2 has type ‘int *’
pointers.c:13: warning: format ‘%u’ expects type ‘unsigned int’, but argument 4 has type ‘int **’
pointers.c:15: warning: format ‘%u’ expects type ‘unsigned int’, but argument 2 has type ‘int *’
pointers.c:15: warning: format ‘%u’ expects type ‘unsigned int’, but argument 4 has type ‘int **’
Решение задачи: «Не компилируется программа»
textual
Листинг программы
#include <stdio.h> #define PR(X) printf("X =%p,*X=%d,&X=%p\n",X,*X,&X) int main(void) { static int urn[]={100, 200, 300}; int *ptr1, *ptr2; ptr1 = urn; ptr2 = &urn[2]; /*unsigned int PR;*/ PR(ptr1); ptr1++; PR(ptr1); PR(ptr2); ++ptr2; PR(ptr2); printf("ptr2 - ptr1 = %d\n", ptr2 - ptr1); return 0; }
Объяснение кода листинга программы
- Подключение стандартной библиотеки
. - Макроопределение PR(X) - вывод информации о переменной X на экран.
- Объявление массива urn типа int со статичным динамическим диапазоном на 3 элемента и инициализация его элементов значениями 100, 200, 300.
- Объявление двух указателей типа int * на элементы массива urn: ptr1 и ptr2.
- Присваивание значения ptr1 элементу urn[0], то есть ptr1 указывает на первый элемент массива urn.
- Присваивание значения ptr2 элементу urn[2], то есть ptr2 указывает на третий элемент массива urn.
- Вызов функции PR(ptr1) для вывода информации о переменной ptr1.
- Инкрементирование значения ptr1 на единицу.
- Вызов функции PR(ptr1) для вывода информации о переменной ptr1.
- Инкрементирование значения ptr2 на единицу.
- Вызов функции PR(ptr2) для вывода информации о переменной ptr2.
- Вывод значения ptr2 - ptr1 на экран.
- Возврат 0 из функции main.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д