I am new to C++. My biggest problem is that I already know C. I thought learning C++ would be super easy since I've got my 1 year experience in C, but it is not so.

Strings:
OK, what I understand about strings is that the std::string type is a class. What I understand about classes is that they are like C structs, but they have additional features like member functions which act on an instance of a class, overloaded operators and stuff I've never heard before.

1. How long can a string be? Seeing some examples it looks like a string can get as long as you have memory to hold them. Am I right?
2. Can I concatenate stuff to a string, making it grow larger and larger?
3. In C I use strtoull (all the strto familly) or atof or atoi for converting strings to numbers. What can I use in C++?

Vectors:
They seem like arrays to me. But can they also grow larger and larger until you have no more memory? Why would I use arrays then, since it seems that vectors have killed them?

References:
I would normally pass an address to a function that takes a pointer. Are references like passing the address of the variable? What's the difference between passing by reference and passing the variables address to a pointer?

That's all for now, thanks!