Invalid type argument of unary '*' (have 'int') Error in C
You forgot to make p
and q
int
pointers. Also, you forgot to use the format specifier in the printf
statements. Try the following:
#include <stdio.h>
#include <stdlib.h>
/*
*
*/
int main() {
int a[] = {5, 15, 34, 54, 14, 2, 52, 72};
int *p = &a[1];
int *q = &a[5];
printf("%d\n", *(p+3));
printf("%d\n", *(q-3));
printf("%d\n", *q-*p);
printf("%d\n", *p<*q);
return (EXIT_SUCCESS);
}
&a[3]
(or &a[5]
) is a pointer type, i.e. int *
.
p
is defined as int
.
So you need to define p
and q
as int *
, like this:
int * p = &a[1];
int * q = &a[5];