Initialization from incompatible pointer type - C (СИ)
Формулировка задачи:
Выдается странное предупреждение во время компиляции кода:
а вот предупреждение:
#include <stdio.h>
#include <stdlib.h>
int main() {
int a[] = {10, 20, 30, 40, 50}, z, *p = &a;
z = *p; printf("z = *p; | z = %d; p[0] = %d; p[1] = %d; p[2] = %d; p[3] = %d; p[4] = %d;\n", z, p[0], p[1], p[2], p[3], p[4]);
z = *p+1; printf("z = *p+1; | z = %d; p[0] = %d; p[1] = %d; p[2] = %d; p[3] = %d; p[4] = %d;\n", z, p[0], p[1], p[2], p[3], p[4]);
z = *(p+1); printf("z = *(p+1); | z = %d; p[0] = %d; p[1] = %d; p[2] = %d; p[3] = %d; p[4] = %d;\n", z, p[0], p[1], p[2], p[3], p[4]);
z = ++*p; printf("z = ++*p; | z = %d; p[0] = %d; p[1] = %d; p[2] = %d; p[3] = %d; p[4] = %d;\n", z, p[0], p[1], p[2], p[3], p[4]);
z = *++p; printf("z = *++p; | z = %d; p[0] = %d; p[1] = %d; p[2] = %d; p[3] = %d; p[4] = %d;\n", z, p[0], p[1], p[2], p[3], p[4]);
z = *p++; printf("z = *p++; | z = %d; p[0] = %d; p[1] = %d; p[2] = %d; p[3] = %d; p[4] = %d;\n", z, p[0], p[1], p[2], p[3], p[4]);
z = (*p)++; printf("z = (*p)++; | z = %d; p[0] = %d; p[1] = %d; p[2] = %d; p[3] = %d; p[4] = %d;\n", z, p[0], p[1], p[2], p[3], p[4]);
getchar();
return 0;
}first.c: In function ‘main’: first.c:7:11: warning: initialization from incompatible pointer type [enabled by default] int *p = &a;
Решение задачи: «Initialization from incompatible pointer type»
textual
Листинг программы
int *p=a