0
int main(){
char a[] = "Ab";
char *ptr = a;
//ptr = a;
cout << &a << a[0] << endl;
cout << ptr << endl;
char c= 'C';
char *pC = &c;
cout << &c << " :: " << pC << endl;
cout << pC << endl;
}
出力: 0x7fffcb399550A アブ CAB :: CAB CAB印刷アドレス
最後の2つの出力を理解することができません。
返信ありがとうございますが、もう一度混乱があります。なぜこの同じ動作がchar a [] = "ab"に適用されないのですか? &aを出力しようとすると、オペレータはchar *としてオペランドタイプを取るべきです。そして、アドレスではなく文字列 "ab"を出力する必要があります。なぜ文字列の先頭のアドレスを出力するのですか?char c = 'C'の場合、&cは文字 'C'を出力しますか? – user3248678
@ user3248678 'a 'は' char'型ではないので '&a'は' char * '型ではありません。 –