Una variable normal se declara (de tipo entero):
int miVariable;
Si quieres declarar un vector de enteros (estático), basta con poner después del nombre de la variable el número de posiciones:
int miVector[10];
Y tienes un vector al que puedes acceder con índices del 0 al 9:
miVector[0]; ... miVector[9];
Si quieres un array dinámico, supongo que te referirás a un vector en memoria dinámica. Para eso necesitas un puntero:
int *miVector;
Y luego inicializar ese puntero para que apunte a la zona de memoria que pides. Para pedir memoria, hay dos alternativas, la utilizada en C, con malloc:
miVector = (int*)malloc(10 * sizeof(int));
o la utilizada en C++ (más sencilla)
miVector = new int[10];
No olvides que luego hay que liberar esa memoria. En C:
free(miVector);
y en C++:
delete []miVector; // el [] son los corchetes abierto y cerrado sin nada en medio.
Por último, pregunta por un array de String... En C no hay tipo String, así que hay que utilizar arrays bidimensionales. Como hablas de "visual c++", supongo que querrás programar en C++, y no en C puro, así que puedes hacer:
// C++ standard, que funciona en cualqueir compilador y no
// solo en Micro$oft
#include < string >
using namespace std;
string miArrayDeCadenas[10];
Y ahora puedes acceder a cada cadena con miArrayDeCadenas[i];
// C++ utilizando clases que solo tiene Visual C++:
CString miArrayDeCadenas[10];
Es decir, en el primer caso utilizas la clase de C++ standard "string" (en minúsculas), y en el segundo caso utilizas la clase de las MFC de M$ "CString". Ese es el "tipo base" de tu vector, del que declaras 10 posiciones (en el ejemplo). Te toca elegir qué clase para la cadena quieres utilizar...
Saludos.