But C syntax clearly hints to int *p being the expected format.
Otherwise you would only need to do int* p, q to declare two pointers... however doing that only declares p as pointer. You are actually required to type * in front of each variable name intended to hold a pointer in the declaration: int *p, *q;