指针c ++。 p和p之间的差异*

时间:2016-05-07 09:53:12

标签: c++ pointers

当我说cout << x时,我不明白应该打印什么。 并且当它说if ( *x==*y)时,这意味着字母应该相等或位置(位置的位置也等于字母的位置)。

enter image description here

2 个答案:

答案 0 :(得分:2)

  

当我说cout << x时,我不明白应该打印什么。

由于x的类型为char*,因此在打印时会将其视为以null结尾的C字符串。如果将指针打印到字符串的中间,则会打印字符串的后缀:

const char *str = "ABCDEFG";
const char *ptr = str + 3;
cout << ptr; // prints DEFG
  

当它表示if ( *x==*y)表示字母应该相等或位置

在此上下文中,

*表示&#34;由......&#34;指向的值,即字母应该相等,而不是位置。

答案 1 :(得分:0)

当你说cout << x它应该打印出整个char数组。我们说char *x = "Something"。如果输入cout << x,输出将为:Something。 *符号是解引用运算符,它用于取消引用指针(换句话说,获取指针的值)。因此,如果您有char *x = "Something"char *y = "Some other thing",并且如果要比较这些char数组的第一个字符,则可以使用if(*x == *y)。因此取消引用char数组会得到第一个char。 cout << *x输出为:S。