Not only can we point to ints, but we can point to pointers to ints. We can have lists of things of different sizes. We can ask for a big block of memory, and pack our irregularly sized data into it. We can create funny shaped arrays in multiple dimensions. Thus they are a very powerful tool.
Pointers give a great deal of flexibility.
We can read and write to places in memory that aren't ours. We can write off the end of an array, wiping out other data. We can confuse indicies, producing arbitrarily complicated bugs. Thus they must be used with care. Homework Compute and store the prime factorization for all numbers up to n.