には複数の意味がある。

既存の変数に使用すると、ポインタに代入できるアドレスを返します。ポインターを使うことで、現在のスコープ外の変数を参照し、その変数に副作用を与えることができるので便利です。以下はその例である：

```
   void f (string* s){
      *s="new string";
   }
   int main(){
     string s = "old string";
     cout<<s<<endl;
     f(&s);
     cout<<s<<endl;
     return 0;
   }
```

出力されるのは
   古い文字列
   新しい文字列
これはC言語と同じだが、変数にアクセスするために常にポインターを再参照する必要があるため、冗長であることがわかるだろう。

C++では、このようなスコープ間の変数の受け渡しを簡単にするために、参照を導入しました。以下はその例である：

   void f(string& s){
     s="new string";
   }
   int main(){
    string s = "old string";
    cout<<s<<endl;
    f(s)
    cout<<s<<endl;
   }

出力は上のコードと同じになるが、アドレスを渡してそれを参照解除する必要はない。

これらのメソッドはコードの最適化にも使用できます。ポインタや参照を使用することで、プログラムは関数がアクセスするために変数をスタックにコピーする必要がなくなり、そのアドレスを保存するだけでよくなります。
C++ 11ではr値参照も導入されており、これを使用するとコードをさらに最適化できます！

うまく説明できただろうか！
in C++ "&" has multiple meanings.

If it is used on an existing variable it will return its adress that can be assigned to a pointer. This is useful because by using a pointer you are able to refence a variable outside of the current scope and have side effect on it. Here is an example:
   void f (string* s){
      *s="new string";
   }
   int main(){
     string s = "old string";
     cout<<s<<endl;
     f(&s);
     cout<<s<<endl;
     return 0;
   }
The output will be:
   old string
   new string
This is the same as in C but as we can see is verbose as I need to always dereference the pointer to access the variable.

C++ introduced references that can be used to ease this transferring of variables between scopes. Here is an example of it in action:
   void f(string& s){
     s="new string";
   }
   int main(){
    string s = "old string";
    cout<<s<<endl;
    f(s)
    cout<<s<<endl;
   }
The output will be the same as the code above, but we didn't need to pass the adress and then dereference it.

These methods can also be used to optimize your code: by using pointers or references the program doesn't have to copy the variable onto the stack for the function to access it, it only has to save its address.
C++ 11 has also introduced rvalue references, that can be used to further optimize your code!

Hope this explained it!