& c和* c声明有什么区别?

时间:2011-11-01 20:35:55

标签: c++

我不明白: 有什么区别:

string Str ("Str");
char &C = Str [0];

和此:

string Str ("Str");
char *C = Str;

我实际上并不理解这个声明:

char &C = Str [0];

3 个答案:

答案 0 :(得分:1)

指针(char * C)和参考(char& C)之间的差异:

  1. 必须立即初始化引用,而指针可能不会 - 您不能只写char &C,必须写char &C = ...;,但char *C;没问题。
  2. 初始化后,引用无法更改引用的地址,而指针可以。
  3. 换句话说,指针可以具有NULL值,并且可以使用指针执行算术运算。

    同样char &C的方式等于char * const C

答案 1 :(得分:0)

char &C = Str [0];

这使C成为对Str[0]的引用。引用是访问变量的另一种方法。它基本上只是一种更优雅的方式来做指针所做的事情。 There are some differences.

答案 2 :(得分:0)

char &C = Str [0];

这会将c引用到Str的第一个成员。访问c将访问Str[0]

char *C = Str;

此处,c 指向指向Str的第一个成员。访问c访问Str[0]。访问*c会。