Q:

Can you really redefine keywords in C language?

Can you explain the code below?  How we can use #define for a keyword of C?
#include <stdio.h>
#define int int*
int main(void) {

    int *p;
    int q;
    p = 10;
    q = 5;
    printf("%d %d", p, q);
    // your code goes here
    return 0;
}

Output:
10 5

A:

This #define int int* is  a preprocessor macro. If you want to define your own synonyms for types then use typedef. You cannot create keywords in a language you did not create.
Sample:
#include <stdio.h>
typedef int * myIntPtr;

int main(void) {

    int i = 10;
    myIntPtr x = &i;
    printf("%d", *x);
    return 0;
}

Output:
10

Also semantically making an int to an int * makes no sense.

