201
C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más / vector abierto en C/C++ uso con const
« en: 07 de Septiembre 2013, 14:56 »
PREGUNTA: Dado el siguiente fragmento de programa en C/C++: const int v[],
Es una declaración de:
a) Un argumento de tipo vector abierto
b) Una constante de tipo cadena
c) Un argumento de tipo cadena
d) Una constante de tipo vector abierto
RESPUESTA: La opción correcta es la a). Puede resultar un poco confuso porque aparece el argumento aislado de la función, pero veamos por qué elegir la a).
Tenemos que recordar que en C/C++ no se permite la declaración de vectores abiertos, ni como variables ni como constantes. La respuesta b) la descartamos porque ni es una constante ni aparece char para poder pensar que se trate de una cadena. La respuesta c) la descartamos porque no se trata de un vector de char, que sería una cadena, sino un vector de int (enteros). La respuesta d) la descartamos porque no es posible declarar constantes de tipo vector abierto (esto concuerda con la lógica de C/C++, ¡no tendría sentido que se permitiera declarar como constante algo que no tiene una dimensión ni un valor!). Por descarte hemos llegado a que la a) es la respuesta correcta. A modo de recordatorio, diremos que nombreFuncion (int v[], int n) hace que el vector abierto sea argumento de la función y se reciba por referencia. Si se usa nombreFuncion (const int v[], int n) el vector se pasa por valor. El parámetro n debe traer la dimensión del vector que se pasa a la función y es obligatorio excepto en el caso de vectores de char (cadenas), donde el carácter de final de cadena ‘\0’ se usa como indicador de final de vector.
Es una declaración de:
a) Un argumento de tipo vector abierto
b) Una constante de tipo cadena
c) Un argumento de tipo cadena
d) Una constante de tipo vector abierto
RESPUESTA: La opción correcta es la a). Puede resultar un poco confuso porque aparece el argumento aislado de la función, pero veamos por qué elegir la a).
Tenemos que recordar que en C/C++ no se permite la declaración de vectores abiertos, ni como variables ni como constantes. La respuesta b) la descartamos porque ni es una constante ni aparece char para poder pensar que se trate de una cadena. La respuesta c) la descartamos porque no se trata de un vector de char, que sería una cadena, sino un vector de int (enteros). La respuesta d) la descartamos porque no es posible declarar constantes de tipo vector abierto (esto concuerda con la lógica de C/C++, ¡no tendría sentido que se permitiera declarar como constante algo que no tiene una dimensión ni un valor!). Por descarte hemos llegado a que la a) es la respuesta correcta. A modo de recordatorio, diremos que nombreFuncion (int v[], int n) hace que el vector abierto sea argumento de la función y se reciba por referencia. Si se usa nombreFuncion (const int v[], int n) el vector se pasa por valor. El parámetro n debe traer la dimensión del vector que se pasa a la función y es obligatorio excepto en el caso de vectores de char (cadenas), donde el carácter de final de cadena ‘\0’ se usa como indicador de final de vector.