Variable | Sololearn: Learn to code for FREE!



Hello, While coding you have noticed that if you select float or int data type for string data.. Error says, Can't convert to float from 'const char*' And this two words also help you to create a string type variable.. Now the question is, Does, c++ counts strings as an constant array of characters?? Another thing const char* - - - 8bits string - - - 32bits Why??

4/13/2021 12:51:27 AM

Mohammad Mehedi Hasan

4 Answers

New Answer


The sizeof compiler operator returns the size in bytes not bits. The const char * is 8 bytes (64-bits) because it is a pointer on a 64-bit system The string is 32 bytes in size because it is an object and contains more than just the characters in the string. if you wish to convert a numeric type to a string use the std::to_string() function int i = 42; double d = 123.456; string stri = to_string(i); string strd = to_string(d); See:


C++ string can not be seen as a character array because the quality of changeable length of characters. As we all know array is fixed sized. std::string works like array because you access the character like you do in array, but in reality it's not an array. About sizeof, An array is a type that allocate a continuous memory to store the elements of the same data type, while std::string is a class and rather complicated. We do not really know how std::string is implemented, but since it's a class, we can guess that it has other various members and functionality which potentially increase the size of a string.



CarrieForle, the underlying data structure in a string is a char array. Even plain old C can have dynamic arrays, that's what realloc is for, so the array is not of a fixed size. To access the underlying char array in a string use the std::string::c_str() method. or the std::string::data() method.