¿Son diferentes las cadenas estáticas en C con respecto a C++?

Iniciado por theluigy13etv, 1 Octubre 2012, 03:44 AM

0 Miembros y 1 Visitante están viendo este tema.

theluigy13etv

Hola, hago esta pregunta porque empecé a aprender C desde hace unos meses, y ahora que quiero aprender C++ quería saber si todo lo que aprendí con respecto a las cadenas estáticas en C son lo mismo en C++. Por ejemplo: En C las cadenas estáticas son en realidad arreglos de caracteres incluyendo el caracter nulo que son apuntadas por un puntero de tipo char *

Osea la declaración:

char cad[5] = "c++";

En realidad C internamente lo trabaja como un arreglo con 4 caracteres: 'c', '+', '+' y '\0'

mientras que la variable cad es una especie de puntero constante. (char *)

¿Mi duda es si en C++ cuando utilice este tipo de estructuras se interpreta de la misma manera o hay alguna diferencia?.

dato000

Es igual, la diferencia en c++ no radica en eso, lo que se implementa es el uso de string para concatenar las palabras como registros y no como un número acumulado de caracteres.

Como decirlo facilmente, C no hay variable string, en c++, si las hay, eso es todo, puedes seguir trabajando igual.

Realmente, las diferencias entre C/C++ son dos, a modo practico:

1) en C se usa printf/scanf, en C++ se usa cout/cin
2) hay más diversidad de funciones de libreria en c++.

buscate en youtube al sensei paueky, el tipo explica muy bien (mejor que nadie) lo que se debe aprender en C++, incluso enseña a programar juegos.



theluigy13etv

Gracias, me parece que tiene buenos videos. A aprender C++  ;D

BlackZeroX

string no es un tipo de variable... es una clase...

Dulces Lunas!¡.
The Dark Shadow is my passion.

theluigy13etv

Cita de: BlackZeroX (Astaroth) en  1 Octubre 2012, 04:31 AM
string no es un tipo de variable... es una clase...

Dulces Lunas!¡.

Sí es una clase. Pero al momento de usarlo en la declaración imita muy bien la sintaxis en la declaración de una variable.  :D

dato000

Cita de: BlackZeroX (Astaroth) en  1 Octubre 2012, 04:31 AM
string no es un tipo de variable... es una clase...

Dulces Lunas!¡.

cierto es, pero seamos practicos, para que se entienda facilmente, funciona como una variable.



BlackZeroX

#6
Cita de: dato000 en  1 Octubre 2012, 04:40 AM
cierto es, pero seamos practicos, para que se entienda facilmente, funciona como una variable.

Escribí mal mi planteamiento de mi anterior comentario.
Una variable es una instancia de un tipo de dato (int, double, float, punteros de X tipo, clases, tipos referencia-les, uff).

* Con esto ultimo ya me contra dije xP... la idea mi anterior comentario era dar a entender que string es una clase de tipo contenedor, en este caso string contiene y manipula una sucesión de bytes que trabajan de la misma manera que un array de char en C; de hecho con el miembro c_str() se obtiene dicho puntero... pero mejor leer esto:

http://www.cplusplus.com/reference/string/string/

Dulces Lunas!¡.
The Dark Shadow is my passion.