&b是取字符串b的首地址的意思吧?
为什么&b[0]和&b[1]给我取的是后几位的字符
b
是字符串指针,其值是那个字符串的首地址,而&b
是取这个指针的地址,其类型是const char**
因为cout
对const char*
类型输出是按字符串输出的,如果你想要输出地址,你得把const char*
指针类型转换为void *
类型,即cout << static_cast<void*>(&b[0]) << endl;
&b[0]是取的b数组第0个字符的地址,相当于b,所以输出的是b字符串
&b[1]是取的b数组第1个字符的地址,相当于b+1,所以输出是b字符串去掉第一个字符后的字符串
1️⃣&b是取字符串b的首地址的意思吧?
是首地址
2️⃣为什么&b[0]和&b[1]给我取的是后几位的字符?
划重点:b是字符指针,本身存储的就是地址
简单来说&b[0]的意思是从b[0]开始的字符串
b[1]是从b[1]开始的字符串
希望对题主有所帮助!可以的话,帮忙点个采纳!